R -选择最多有一个NA值的所有行?[重复]

rwqw0loc  于 2023-02-20  发布在  其他
关注(0)|答案(1)|浏览(95)
    • 此问题在此处已有答案**:

How to delete rows from a dataframe that contain n*NA(4个答案)
2天前关闭。
我正在尝试插补数据并保留尽可能多的观测值。我希望从以下位置找到的数据中选择最多具有1个NA值的观测值:mlbench::data(PimaIndiansDiabetes2).
例如:

Var1 Var2 Var3
1      NA   NA
2      34   NA
3      NA   NA
4      NA   55
5      NA   NA
6      40   28

我想退货的商品:

Var1 Var2 Var3
2      34   NA
4      NA   55
6      40   28

这段代码返回的行包含NA值,我知道我可以使用merge()将所有包含1个NA值的观测值连接到不包含NA值的观测值,但我不确定如何提取这些值。

na_rows <- df[!complete.cases(df), ]
ctehm74n

ctehm74n1#

base R溶液:

df[rowSums(is.na(df)) <= 1, ]

它的dplyr等价物:

library(dplyr)

df %>%
  filter(rowSums(is.na(pick(everything()))) <= 1)

相关问题