【发布时间】:2016-06-14 06:53:09
【问题描述】:
我有一个数据框列表:
d1<-data.frame(a=rnorm(5), b=rep(2006, times=5), cc=c(1:5))
d2<-data.frame(a=rnorm(5), b=rep(2007, times=5), cc=c(1:5))
d3<-data.frame(a=rnorm(5), b=c(2005:2009), cc=c(1:5)) #data frame with only one 2007 value
d4<-data.frame(a=rnorm(5), b=rep(2007, times=5), cc=c(1:5))
my.ls<- list(d1, d2, d3,d4)
仅包含 b == 2006 的子集 data.frames
如何只选择/子集一个数据框 b == 2007?
我相信这很简单
my.ls[sapply(my.ls[[i]]$b) == 2007]
但我无法弄清楚... 如何访问数据框列表中的行?谢谢!
比较结果:
a1<-Filter(function(x) all(x$b==2007), my.ls)
a2<-my.ls[sapply(my.ls, function(x) all(x$b==2007))]
> identical(a1, a2)
[1] TRUE
【问题讨论】: