R 排除子集中特定列中包含NA的行

R 排除子集中特定列中包含NA的行,r,dataframe,subset,R,Dataframe,Subset,我正在尝试排除包含我选择的特定列的NA的子集的行。我有一个调查数据的CSV电子表格,这种组织,例如: name idnum term type q2 q3 bob 0321 1 2 0 . . . 3 1 5 3 ron . 2 4 2 1 . 2561 4 3

我正在尝试排除包含我选择的特定列的NA的子集的行。我有一个调查数据的CSV电子表格,这种组织,例如:

name    idnum   term    type      q2    q3
bob     0321    1       2         0     .
.       .       3       1         5     3
ron     .       2       4         2     1
.       2561    4       3         4     2

当我创建我的R-workspace时,我将其设置为
dataCheck out
complete.cases
,如SO帖子的答案所示

这将返回第3列到第6列中包含完整信息的所有行。

另一种方法

data[rowSums(is.na(data[,3:6]))==0,]
另一个选择是

data[!Reduce(`|`, lapply(data[3:6], is.na)),]

data[complete.cases(data[,c(3,7,8)],]
这将返回第3,7,8列的complete.cases。这就是你想要的吗?是的,谢谢。我认为这会解决这个问题,但我不能确定,直到我有更多的时间来处理代码/统计数据。你为什么提出这个特殊的解决方案?一般来说是更快还是最佳做法?(了解您的典型回答,我认为出于某种原因,它会更好)@Rilcon42您的解决方案应该更快,因为它使用了
complete.cases
。这只是另一种选择。
data[!Reduce(`|`, lapply(data[3:6], is.na)),]