我在想是否有更好的方法来做这件事,或者是否可能会遇到一些未预料的麻烦。我需要从数据框中进行子集选择,但是我不想使用列名,我需要通过引用列号来完成它。
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))
假设我想对数据框进行子集操作,并仅保留包含在第5列中的有效数字之前连续3个NA的行。最好的方法是使用以下代码(不使用列名):
sub <- data[(which(is.na(data[2]) &
is.na(data[3]) &
is.na(data[4]) &
!is.na(data[5]))), ]
有人看到这个有问题或者知道更好的方法吗?虽然一切似乎都按照预期工作,但我担心在子集中使用子集。
soread()
是一个非常有用的函数。 :-) - Rich Scriven