gpt4 book ai didi

r - 如何删除特定列中带有 NA 的行,但前提是它们在另一列中有重复项?

转载 作者:行者123 更新时间:2023-12-03 23:19:59 29 4
gpt4 key购买 nike

所以我有这个数据框,其中有些行在“物种”列中重复,有些则没有。
所有类型的行中都有 NA,重复和不重复。

Species            |  A  |  B  |  
--------------------------------
Tilapia guineensis | 1 | 10 |
Tilapia guineensis | 1 | NA |
Tilapia zillii | 3 | 23 |
Tilapia zillii | 3 | NA |
Eutrigla gurnardus | 18 | 4 |
Caramila artida | 9 | NA |
Sprattus sprattus | 7 | 6 |
Spalili burcant | 11 | NA |
我想删除在 B 列中有 NA 的那些行,但前提是它们属于重复行。
我的输出将是这样的:
Species            |  A  |  B  |  
--------------------------------
Tilapia guineensis | 1 | 10 |
Tilapia zillii | 3 | 23 |
Eutrigla gurnardus | 18 | 4 |
Caramila artida | 9 | NA |
Sprattus sprattus | 7 | 6 |
Spalili burcant | 11 | NA |
基本上,如果某行在 Species 列中重复并且在 B 列中有一个 NA,我想用 NA 删除该行。但是,如果某行在 Species 列中是唯一的,即使它有 NA,我也想保留它。
对不起,如果我感到困惑,提前致谢。
可重现的数据格式:
df <- read.csv(text="
Species,A,B
Tilapia guineensis,1,10
Tilapia guineensis,1,NA
Tilapia zillii,3,23
Tilapia zillii,3,NA
Eutrigla gurnardus,18,4
Caramila artida,9,NA
Sprattus sprattus,7,6
Spalili burcant,11,NA")

最佳答案

我认为您可以避免使用任何分组逻辑,并在一次通过中获得结果:

df[!(duplicated(df$Species) & is.na(df$B)),]
# Species A B
#1 Tilapia guineensis 1 10
#3 Tilapia zillii 3 23
#5 Eutrigla gurnardus 18 4
#6 Caramila artida 9 NA
#7 Sprattus sprattus 7 6
#8 Spalili burcant 11 NA

关于r - 如何删除特定列中带有 NA 的行,但前提是它们在另一列中有重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65418377/

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