【发布时间】:2020-02-17 17:28:34
【问题描述】:
假设我有一个如下所示的数据框:
>df
col1 col2 col3
12 NA 2
21 11 NA
NA 2 NA
3 NA NA
NA NA 4
8 12 5
41 39 9
我想省略 NA,但是 col3 中的 NA 是一条宝贵的信息,所以我不想在没有更多信息的情况下用任何其他值填充它。因此,我只想省略与 col3 中的 NA 不重叠的 NA。
所以它看起来像这样:
>df
col1 col2 col3
21 11 NA
NA 2 NA
3 NA NA
8 12 5
41 39 9
col2 和 col1 中的 NA 仍然存在的唯一原因是因为删除它们的行会导致 col3 中的 NA 也被删除,这是我想要防止的。因此,我可以容忍 col1 和 col2 中剩余的 NA。
我有什么方便的方法或任何包来解决这个问题吗?我试过使用过滤器:
df <- df %>% filter(complete.cases(df[, -3]))
但它变成了这样,因为有重叠的 NA :
>df
col1 col2 col3
21 11 NA
8 12 5
41 39 9
有什么想法吗?先谢谢了~
【问题讨论】:
-
你如何定义重叠?
-
如果 col1 或 col2 上的任何 NA 与 col3 中的 NA 在同一行,这就是我确定为重叠的方式。请原谅我在解释问题时缺乏词汇。
标签: r dataframe missing-data