簡體   English   中英

刪除除一列外均為空的行

[英]Removing rows in which all but one column are empty

使用以下代碼:

data <- rbind(c(1,1,2,3),
          c(1,1, NA, 4), 
          c(1,4,6,7), 
          c(1,NA, NA, NA), 
          c(1,4, 8, NA))

我想刪除第2-4列為NA的行。 有沒有辦法做到這一點?

您可以通過以下方式進行操作:

filteredData <- data[!is.na(data[,2]) | !is.na(data[,4]),]

> data
     [,1] [,2] [,3] [,4]
[1,]    1    1    2    3
[2,]    1    1   NA    4
[3,]    1    4    6    7
[4,]    1   NA   NA   NA
[5,]    1    4    8   NA

> filteredData
     [,1] [,2] [,3] [,4]
[1,]    1    1    2    3
[2,]    1    1   NA    4
[3,]    1    4    6    7
[4,]    1    4    8   NA

其他方式:

 data[! rowSums(is.na(data[,2:4])) == 3, ]

如果只是第2列和第 4列,則為:

data[! rowSums(is.na(data[,c(2,4)])) == 2, ]

要刪除第2-4列中所有值均為NA

data[apply(data[,2:4],1,function(x) !all(is.na(x))),]

     [,1] [,2] [,3] [,4]
[1,]    1    1    2    3
[2,]    1    1   NA    4
[3,]    1    4    6    7
[4,]    1    4    8   NA

要僅從檢查NA的列中排除第一列,可以使用類似以下的負索引:

data[apply(data[,-1],1,function(x) !all(is.na(x))),]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM