提问人:Luther_Proton 提问时间:3/24/2023 最后编辑:benson23Luther_Proton 更新时间:3/24/2023 访问量:283
用于标识 R [duplicate] 中重复行的新列
New column to identify duplicate rows in R [duplicate]
问:
寻求一些关于创建新列的专业知识/指导,以根据几个选定的列指示可能的重复项。
我有以下数据帧
编号 | 动物 | 年龄 | 交货 | 成本 | 国家 |
---|---|---|---|---|---|
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 |
提前致谢!
答:
1赞
benson23
3/24/2023
#1
您可以设置目标列,然后用于查看每个组是否有多个记录。group_by
n()
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
上一个:数据整理扩大和整合行
下一个:将行与不同的变量组合在一起
评论
{function(x) duplicated(x) | duplicated(x, fromLast=TRUE)}(df[c("Animals","Age","Country")])