gpt4 book ai didi

如果 R 中的重复项之一中存在 NA,则删除重复项

转载 作者:行者123 更新时间:2023-12-03 23:34:07 25 4
gpt4 key购买 nike

我正在尝试从数据集中删除重复项(由合并引起)。但是,一行包含一个值而另一行不包含,在某些情况下,两行都是 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

最佳答案

使用 dplyr 的一种可能性可能:

df %>%
group_by(ID) %>%
slice(which.max(!is.na(value)))

ID value
<chr> <int>
1 A 1
2 B NA
3 C 1
4 D 1
5 E 1
6 G 1
7 H 1
8 J 1

关于如果 R 中的重复项之一中存在 NA,则删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63263254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com