R:按列数的子集数据帧列表?

时间:2016-02-28 22:21:37

标签: r subset lapply

我有一个问题,就是通过简单的条件 - 列数来对包含数据框的列表进行子集化。

这是我的数据集:

d1<-data.frame(a=rnorm(5), b=c(rep(2006, times=4),NA), cc=c(1:5))
d2<-data.frame(a=1:5, b=c(2007, 2007, NA, NA, 2007))  

我的清单:

ls1<-list(d1, d2)

如何对ls1中包含3列的数据框进行子集化?

我试过这个

lapply(ls1, subset, ncol = 3)

但它不起作用..谢谢!

1 个答案:

答案 0 :(得分:2)

ls1[sapply(ls1,ncol) == 3]

Filter(function(x) ncol(x) == 3, ls1)