【发布时间】:2020-08-05 10:30:30
【问题描述】:
我正在尝试从数据集中删除重复项(由合并引起)。但是,一行包含一个值,而另一行不包含,在某些情况下,两行都是 NA。我想保留那些有数据的,如果有 NA,那么我保留哪个并不重要。我怎么做?我被卡住了。
我没有成功尝试过这里的解决方案(通常也不使用 data.table,所以我不明白是什么)
R data.table remove rows where one column is duplicated if another column is NA
一些最小示例数据:
df <- data.frame(ID = c("A", "A", "B", "B", "C", "D", "E", "G", "H", "J", "J"),
value = c(NA, 1L, NA, NA, 1L, 1L, 1L, 1L, 1L, NA, 1L))
ID value
A NA
A 1
B NA
B NA
C 1
D 1
E 1
G 1
H 1
J NA
J 1
我想要这个:
ID value
A 1
B NA
C 1
D 1
E 1
G 1
H 1
J 1
【问题讨论】:
-
链接问题中@Psidom的答案也可以,您只需要适应整数:
library(data.table) setDT(df)[, .(value = if (all(is.na(value))) NA_integer_ else na.omit(value)), by = ID]
标签: r duplicates