假设我有一个27列数据帧。第一列是ID,其余列(A到Z)只是数据。我想取出A到Z列为NA的所有行。我该怎么办? 直截了当的方式就是
data %>%
filter(!(is.na(A) & is.na(B) .... & is.na(Z)))
有更有效或更简单的方法吗?
此问题与This one不同,因为我想要排除值为ALL NA的行,并保留其值为部分NA的行。
答案 0 :(得分:0)
使用library(tidyverse)
:
ID <- c(1:8)
Col1<-c(34564,NA,43456,NA,45655,6789,99999,87667)
Col2<-c(34565,43456,55555,NA,65433,22234,NA,98909)
Col3<-c(45673,88789,11123,NA,55676,76566,NA,NA)
mydf <- data_frame(ID,Col1,Col2,Col3)
mydf %>%
slice(which(complete.cases(.)))
加载数据:
mydf %>%
mutate(full_incomplete_cases=rowSums(is.na(.[-1]))) %>%
filter(full_incomplete_cases<length(mydf[,-1])) %>%
select(ID:Col3)
是否要保留选定的列,删除包含您可能运行的所有NA的行:
{{1}}