如何只删除 R 中所有 NA 的行?

How to remove only rows that have all NA in R?

我有一个数据框,其中只有一些行全部为 NA。 如何遍历并删除所有这些行? 我尝试了 na.omit() 但这不起作用。 在此示例中,我需要删除第 3 行和第 5 行

x1 <- c("Bob", "Mary","","Jane","")
x2 <- c("Bob","Mary","","Jane","")
x3 <- c("Bob", "Mary","","Jane","")
x4 <- c("Bob","Mary","","Jane","")

df <- data.frame(x1,x2,x3,x4)

df <- df %>% na.omit()

这是一个选项;首先你需要定义 NA 模式。

df[df == ""] <- NA # define NA pattern
df[rowSums(is.na(df)) != ncol(df), ] # result
# Try with x1 <- c("Bob", "Mary","","","") 
> df[rowSums(df=="")!=ncol(df), ]
    x1   x2   x3   x4
1  Bob  Bob  Bob  Bob
2 Mary Mary Mary Mary
4 Jane Jane Jane Jane