在匹配特定字符串模式的全局环境中创建对象列表

时间:2014-11-04 14:58:35

标签: regex r list grep ls

我在全局环境中有10个数据框 - 5个具有名称模式,另外5个具有另一个命名模式。我想将具有相同命名模式的数据帧放入每个列表中(两个列表 - 每个模式一个),所以最终我可以使用lapply对每个列表进行检查,如下所示:

 lapply(listofdataframes, function(x) range(x[ , "date"]))`

因此,命名模式为Pattern 1q32013localq42013localq12014local等。

Pattern 2q32013nationalq42013national

我过去曾用过这个:

 Filter(function(x) is(x, "data.frame"), mget(ls()))` 

但它显然列出了全球环境中的所有数据框。

我一直在寻找如何一起使用grepls。我在这里List files with certain extensions with ls and grep找到了bash等效问题,但没有R等价物。我确实提到了这两个相关问题,但它们完全不同:

Return elements of list as independent objects in global environmentHow can I make a list of all dataframes that are in my global environment?

1 个答案:

答案 0 :(得分:3)

我使用了以下内容,显然需要对每个模式重复一次。

Pattern1<-grep("local",names(.GlobalEnv),value=TRUE)
     Pattern1_list<-do.call("list",mget(Pattern1))