R 排除子集中特定列中包含NA的行
我正在尝试排除包含我选择的特定列的NA的子集的行。我有一个调查数据的CSV电子表格,这种组织,例如: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
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 outcomplete.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)),]