在R

时间:2016-03-23 15:27:36

标签: r list filter subset lapply

如何通过数据框的名称从数据框列表创建子集?

例如,

d1<-data.frame(a=rnorm(5), b=c(rep(2006, times=4),NA))
b2<-data.frame(a=1:5, b=c(2007, 2007, NA, NA, 2007))  
my.ls <- list(d1 = d1, b2 = b2)
my.ls

假设我想选择(或过滤?)数据框名称中包含字母b的每个数据框,我该怎么办呢?

我试过这个:

flrcp45 <- lapply(my.ls, subset, contains = "b")

但它包含了一切。

1 个答案:

答案 0 :(得分:3)

您可以尝试这一点(包含Laterow&#39;提示):

my.ls[grepl("b",names(my.ls))]
$b2
  a    b
1 1 2007
2 2 2007
3 3   NA
4 4   NA
5 5 2007