[英]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.