gpt4 book ai didi

r - 如何在 R 中的特定条件下删除行?

转载 作者:行者123 更新时间:2023-12-04 09:10:58 25 4
gpt4 key购买 nike

我必须从我的 df 中删除与特定条件相关的行。

我有一个简单的df

sentID   partner  sentence
A B C
A B D
B C E
B C F
B A S

并且我想删除 sentID 和合作伙伴相等且同时 sentID 未关联到另一个合作伙伴值的那些。 (即特定的 sentID 不会仅以相同的合作伙伴值出现。)否则,我必须保持这一行。

sentID   partner  sentence
B C E
B C F
B A S

在输出示例中,包含 sentID A 的行已被删除,因为它仅与合作伙伴 B 一起出现。 SentID B 被保留是因为它与合作伙伴 C 和 A 一起出现。

我该怎么办?

感谢您的建议!

最佳答案

这是一个dplyr解决方案:

df <- data.frame(sentID = c("A", "A", "B", "B", "B"),
partner = c("B", "B", "C", "C", "A"))

df
#> sentID partner
#> 1 A B
#> 2 A B
#> 3 B C
#> 4 B C
#> 5 B A

library(dplyr)

df %>% group_by(sentID) %>% filter(length(unique(partner)) > 1)
#> # A tibble: 3 x 2
#> # Groups: sentID [1]
#> sentID partner
#> <fctr> <fctr>
#> 1 B C
#> 2 B C
#> 3 B A

reprex package 创建于 2019-01-10 (v0.2.1)

关于r - 如何在 R 中的特定条件下删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54128939/

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