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

xoshrz7s  于 2023-06-19  发布在  其他
关注(0)|答案(2)|浏览(106)

我在全局环境中有10个 Dataframe -5个具有名称模式,另外5个具有其他命名模式。我想把具有相同命名模式的 Dataframe 放入一个列表中(两个列表-每个模式一个),这样我就可以使用lapply对每个 Dataframe 进行检查,如下所示:

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

因此,命名模式为-Pattern 1q32013localq42013localq12014local等。
Pattern 2q32013nationalq42013national
我过去用过这个:

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

但它显然列出了全局环境中的所有 Dataframe 的列表。
我正在寻找如何一起使用grepls。我在SO here 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?

2vuwiymt

2vuwiymt1#

我已经使用了下面的,显然这将需要为每个模式重复。

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

ohtdti5x2#

这是一个简短的解决方案,灵感来自W.Kessler:

Pattern1_list <- list(mget(ls(pattern = "local")))[[1]]

相关问题