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