有没有快速的方法来搜索R中的变量?

Edu*_*ebe 7 r stata

在Stata中,该lookfor命令提供了一种快速搜索数据集中变量的方法(它可以搜索变量名称和标签).所以lookfor education很快就找到你与教育有关的变量.R中是否有等效的快捷功能?

mpi*_*tas 6

您可以简单地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)