在Stata中,该lookfor命令提供了一种快速搜索数据集中变量的方法(它可以搜索变量名称和标签).所以lookfor education很快就找到你与教育有关的变量.R中是否有等效的快捷功能?
您可以简单地grep使用data.frame获取所需的信息.然后,您将获得更多信息,而不仅仅是某些人匹配的变量名称列表.您还可以使用正则表达式,从而增强搜索功能.以下是执行所需操作的函数示例(仅适用于data.frame):
lookfor <-
function (pattern, data, ...)
{
l <- lapply(data, function(x, ...) grep(pattern, x, ...))
res <- rep(FALSE, ncol(data))
res[grep(pattern, names(data), ...)] <- TRUE
res <- sapply(l, length) > 0 | res
names(res) <- names(data)
names(res)[res]
}
Run Code Online (Sandbox Code Playgroud)
首先,我grep每列,然后我grep列名称.然后我只保留grep是否匹配任何内容的信息,并分别记录每列.而不是...你可以传递任何参数grep.如果省略它,此函数将执行简单的字符串匹配.
这是一个例子:
> dt<- data.frame(y=1:10,x=letters[1:10],a=rnorm(10))
> lookfor("a",dt)
[1] "x" "a"
Run Code Online (Sandbox Code Playgroud)