gpt4 book ai didi

r - 使用 dplyr 仅过滤重复的行

转载 作者:行者123 更新时间:2023-12-02 03:21:05 24 4
gpt4 key购买 nike

我已经尝试了一段时间来解决一个接近 this issue 中提出的问题。没有成功。这包括过滤组中重复的项目,但也考虑用于与 dplyr 进行比较的原始项目(我更喜欢 dplyr 而不是 base 或 data.table)。

我尝试的解决方案如下:

> a <- data.frame(name=c("a","b","b","b","a","a"),position=c(1,2,1,2,2,2),achieved=c(1,0,0,0,1,0))
> a %>% group_by(name,achieved) %>% mutate(duplicated=duplicated(position))
# A tibble: 6 x 4
# Groups: name, achieved [3]
name position achieved duplicated
<fct> <dbl> <dbl> <lgl>
1 a 1 1 FALSE
2 b 2 0 FALSE
3 b 1 0 FALSE
4 b 2 0 TRUE
5 a 2 1 FALSE
6 a 2 0 FALSE

我知道这个解决方案接近我想要的解决方案,但它只给我带来第一个值之后重复的值,但我也想要一个 dplyr 解决方案为我提供每个组的所有重复值,因此这可能可以帮助我提高对 dplyr 的理解。

所需的输出如下:

# A tibble: 6 x 4
# Groups: name, achieved [3]
name position achieved duplicated
<fct> <dbl> <dbl> <lgl>
1 a 1 1 FALSE
2 b 2 0 TRUE
3 b 1 0 FALSE
4 b 2 0 TRUE
5 a 2 1 FALSE
6 a 2 0 FALSE

提前致谢。

最佳答案

您似乎想按所有姓名、职位和成就进行分组,然后查看该组中是否有多个记录

a %>% group_by(name,achieved, position) %>% mutate(duplicated = n()>1)

# name position achieved duplicated
# <fct> <dbl> <dbl> <lgl>
# 1 a 1 1 FALSE
# 2 b 2 0 TRUE
# 3 b 1 0 FALSE
# 4 b 2 0 TRUE
# 5 a 2 1 FALSE
# 6 a 2 0 FALSE

关于r - 使用 dplyr 仅过滤重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54793207/

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