簡體   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