![](/img/trans.png)
[英]Remove any rows where values don't match across specific columns, except if other value(s) is NA
[英]Select columns that don't contain any NA value in R
如何选择R中不包含任何NA
值的列? 只要列包含至少一个NA
,我想排除它。 最好的方法是什么? 我试图使用sum(is.na(x))
来实现这一目标,但尚未成功。
另外,另一个R问题。 是否可以使用命令排除包含所有相同值的列? 例如,
column1 column2
row1 a b
row2 a c
row3 a c
我的目的是从我的矩阵中排除column1
,所以最终的结果是:
column2
row1 b
row2 c
row3 c
对于矩阵,您可以使用colSums(is.na(x)
来查找哪些列包含NA
值
给定矩阵x
x[, !colSums(is.na(x)), drop = FALSE]
将适当地分组。
对于data.frame
,使用lapply
或sapply
以及函数anyNA
会更有效
xdf[, sapply(xdf, Negate(anyNA)), drop = FALSE]
如果'mat1'是矩阵:
indx <- unique(which(is.na(mat1), arr.ind=TRUE)[,2])
subset(mat1, select=-indx)
也可以
new.df <- df[, colSums(is.na(df)) == 0 ]
这种方式允许您根据列中NA值的数量进行子集化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.