繁体   English   中英

选择R中不包含任何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

从数据框中删除所有值为NA的列处理所有值为NA的情况

对于矩阵,您可以使用colSums(is.na(x)来查找哪些列包含NA

给定矩阵x

x[, !colSums(is.na(x)), drop = FALSE]

将适当地分组。

对于data.frame ,使用lapplysapply以及函数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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM