我有一个问题,就是通过简单的条件 - 列数来对包含数据框的列表进行子集化。
这是我的数据集:
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)
但它不起作用..谢谢!
答案 0 :(得分:2)
ls1[sapply(ls1,ncol) == 3]
或
Filter(function(x) ncol(x) == 3, ls1)