3
我想知道是否有更好的方法来做到这一点,或者如果我可能会遇到一些无法预料的麻烦。我需要从数据框子集,但我不想使用列名称。我需要通过参考列号来做到这一点。子集数据框不使用列名
data <- data.frame(col1= c(50, 20, NA, 100, 50),
col2= c(NA, 25, 125, 50, NA),
col3= c(NA, 100, 15, 55, 25),
col4= c(NA, 30, 125, 100, NA),
col5= c(80, 25, 75, 40, NA))
假设我要子集的数据帧,只保留包含3倍连续的NA前5列有效的数字排尽我所能想出不使用的列名是这样的:
sub <- data[(which(is.na(data[2]) &
is.na(data[3]) &
is.na(data[4]) &
!is.na(data[5]))), ]
任何人看到任何麻烦或知道更好的方法吗?我很担心在子集内使用子集,尽管每个事物似乎都在按照它应该的方式工作。
为什么列1被排除在考虑? – 2014-08-28 18:29:42
@BondedDust,因为它看起来就是OP基于他们的代码之后(尽管他们的描述有点模糊)。 – A5C1D2H2I1M1N2O1R2T1 2014-08-28 18:30:40
(+1)我刚刚在12分钟后完成了这个确切代码。顺便说一句,'soread()'是一个非常有用的功能。 :-) – 2014-08-28 18:39:03