如何保留所有含有NA值的行和列。

15 浏览
0 Comments

如何保留所有含有NA值的行和列。

有没有办法使用在数据框上应用函数,只保留具有任何缺失值的行?

0
0 Comments

问题的原因是要保留含有缺失值(NA)的所有行的所有列。有两种方法可以解决这个问题。

第一种方法是使用rowSums()和is.na()函数来判断每一行是否存在缺失值,然后使用逻辑运算符>0筛选出含有缺失值的行,并保留所有列的数据。

df[rowSums(is.na(df)) > 0,]
#  X1 X2 X3 X4 X5
#1 NA NA 11 16 21
#3  3  8 NA 18 23
#5  5 10 15 20 NA

第二种方法是使用complete.cases()函数来判断每一行是否为完整的观测值(即不含有缺失值),然后使用逻辑运算符!筛选出含有缺失值的行,并保留所有列的数据。

df[!complete.cases(df),]

下面是示例数据:

m <- matrix(1:25, ncol = 5)
m[c(1,6,13,25)] <- NA
df <- data.frame(m)
df
#  X1 X2 X3 X4 X5
#1 NA NA 11 16 21
#2  2  7 12 17 22
#3  3  8 NA 18 23
#4  4  9 14 19 24
#5  5 10 15 20 NA

以上就是保留含有缺失值的所有行的所有列的两种方法。您可以根据自己的需求选择其中一种方法来处理数据。

0
0 Comments

在处理数据时,经常会遇到一些缺失值(NAs)的情况。有时候我们需要保留那些含有缺失值的行,但是不知道如何用dplyr来实现。下面是一个关于如何保留含有缺失值的行的问题及其解决方法。

首先,我们创建了一个数据框df,它包含三列a、b、c。其中,列a的第一行为1,第二行为2,第三行为3,第四行为4;列b的第一行为NA,第二行为0,第三行为1,第四行为1;列c的第一行为0,第二行为1,第三行为NA,第四行为0。

接下来,我们可以使用以下代码来筛选出含有缺失值的行:

df[!complete.cases(df),]

这样就可以得到只含有缺失值的行了。

这个问题的解决方法参考了以下链接:Subset of rows containing NA (missing) values in a chosen column of a data frame

在这个链接中,还有其他的解决方法,我们可以尝试一下,然后再看看哪种方法更适合我们的情况。希望以上的解决方法对大家有所帮助!

0