使用以下代码:
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 的行。有没有办法做到这一点?
使用以下代码:
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 的行。有没有办法做到这一点?
另一种方式:
data[! rowSums(is.na(data[,2:4])) == 3, ]
如果它只是第 2 列和第 4 列,那么它将是:
data[! rowSums(is.na(data[,c(2,4)])) == 2, ]
你可以这样做:
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
要删除第 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
's 的列中排除第一列,您可以使用负索引,例如:
data[apply(data[,-1],1,function(x) !all(is.na(x))),]