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

14 浏览
0 Comments

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

这个问题已有答案:

删除数据框中所有或部分 NA(缺失值)

在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()

admin 更改状态以发布 2023年5月24日
0
0 Comments
> df[rowSums(df=="")!=ncol(df), ]
    x1   x2   x3   x4
1  Bob  Bob  Bob  Bob
2 Mary Mary Mary Mary
4 Jane Jane Jane Jane

:这是一段包含粗体文本的 HTML 标签。

0
0 Comments

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

df[df == ""] <- NA # define NA pattern
df[rowSums(is.na(df)) != ncol(df), ] # result
# Try with x1 <- c("Bob", "Mary","","","") 

0