微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查找重复值组

如何解决查找重复值组

我有以下数据集,我想找出所有唯一组,其中包含 2 个或更多 pid,这些pidorg 中重复和/或加班。 因此,预期的结果是确定包含 pid 11、23 和 9 的组,它们出现在 2 个组织 a 和 c 以及 2017 和 2018 年。请注意,我只需要 pid 组出现在整个组织或年份.无需同时满足这两个条件..

目前,我对在 org

中重复 pid 组更感兴趣

您在 R 或 Stata 中解决此问题的帮助将不胜感激!

组织 pid
2017 11
2017 23
2017 9
2017 1
2017 b 4
2017 b 5
2017 c 11
2017 c 9
2017 c 23
2018 11
2018 23
2018 9
2018 1
2018 b 4
2018 b 5
2018 b 8
2018 c 11
2018 c 9
2018 c 23

解决方法

要选择出现在多个 pid org 中的 year,您可以使用:

library(dplyr)

df %>%
  arrange(pid) %>%
  group_by(pid) %>%
  filter(n_distinct(org) > 1 || n_distinct(year) > 1) %>%
  ungroup

#    year org     pid
#   <int> <chr> <int>
# 1  2017 a         1
# 2  2018 a         1
# 3  2017 b         4
# 4  2018 b         4
# 5  2017 b         5
# 6  2018 b         5
# 7  2017 a         9
# 8  2017 c         9
# 9  2018 a         9
#10  2018 c         9
#11  2017 a        11
#12  2017 c        11
#13  2018 a        11
#14  2018 c        11
#15  2017 a        23
#16  2017 c        23
#17  2018 a        23
#18  2018 c        23

要选择出现在多个 pid org 中的 year,您可以使用:

df %>%
  arrange(pid) %>%
  group_by(pid) %>%
  filter(n_distinct(org) > 1 && n_distinct(year) > 1) %>%
  ungroup

#    year org     pid
#   <int> <chr> <int>
# 1  2017 a         9
# 2  2017 c         9
# 3  2018 a         9
# 4  2018 c         9
# 5  2017 a        11
# 6  2017 c        11
# 7  2018 a        11
# 8  2018 c        11
# 9  2017 a        23
#10  2017 c        23
#11  2018 a        23
#12  2018 c        23

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。