用于标识 R [duplicate] 中重复行的新列

New column to identify duplicate rows in R [duplicate]

提问人:Luther_Proton 提问时间:3/24/2023 最后编辑:benson23Luther_Proton 更新时间:3/24/2023 访问量:283

问:

寻求一些关于创建新列的专业知识/指导,以根据几个选定的列指示可能的重复项。

我有以下数据帧

编号 动物 年龄 交货 成本 国家
1 5 空气 120 尼日利亚
2 3 空气 110 肯尼亚
3 1 空气 20 肯尼亚
4 5 空气 150 尼日利亚
5 3 空气 100 肯尼亚
6 6 空气 180 埃及
7 3 空气 135 肯尼亚
8 turtle 10 空气 90 尼日利亚
df = structure(list(ID = 1:8, Animals = c("dog", "cat", "fish", "dog", 
                                          "cat", "dog", "cat", "turtle"), Age = c(5L, 3L, 1L, 5L, 3L, 6L, 
                                           3L, 10L), Delivery = c("Air", "Air", "Air", "Air", "Air", "Air", 
                                           "Air", "Air"), Cost = c(120L, 110L, 20L, 150L, 100L, 180L, 135L, 
                                           90L), Country = c("Nigeria", "Kenya", "Kenya", "Nigeria", "Kenya", 
                                           "Egypt", "Kenya", "Nigeria")), class = "data.frame", row.names = c(NA, 
                                           -8L))

我想创建一个新列,突出显示 3 列 - 动物、年龄和国家/地区是否重复多次以标记为重复。

输出如下

编号 动物 年龄 交货 成本 国家 新建列
1 5 空气 120 尼日利亚 Y
2 3 空气 110 肯尼亚 Y
3 1 空气 20 肯尼亚 N
4 5 空气 150 尼日利亚 Y
5 3 空气 100 肯尼亚 Y
6 6 空气 180 埃及 N
7 3 空气 135 肯尼亚 Y
8 turtle 10 空气 90 尼日利亚 N

提前致谢!

R DataFrame dplyr Tidyverse 数据操作

评论

0赞 thelatemail 3/24/2023
我认为这本质上是这个 r-FAQ - 查找所有重复行 - 例如:以及 tidyverse 等效的答案{function(x) duplicated(x) | duplicated(x, fromLast=TRUE)}(df[c("Animals","Age","Country")])

答:

1赞 benson23 3/24/2023 #1

您可以设置目标列,然后用于查看每个组是否有多个记录。group_byn()

library(dplyr)

df %>% group_by(Animals, Age, Country) %>% mutate(dup = n() > 1) %>% ungroup()

# A tibble: 8 × 7
     ID Animals   Age Delivery  Cost Country dup  
  <int> <chr>   <int> <chr>    <int> <chr>   <lgl>
1     1 dog         5 Air        120 Nigeria TRUE 
2     2 cat         3 Air        110 Kenya   TRUE 
3     3 fish        1 Air         20 Kenya   FALSE
4     4 dog         5 Air        150 Nigeria TRUE 
5     5 cat         3 Air        100 Kenya   TRUE 
6     6 dog         6 Air        180 Egypt   FALSE
7     7 cat         3 Air        135 Kenya   TRUE 
8     8 turtle     10 Air         90 Nigeria FALSE