【发布时间】:2019-06-13 00:50:36
【问题描述】:
我有一个基本问题,我希望不是复制。我环顾四周,但找不到直接解决这个问题的人。 我有一个如下所示的数据集:
df <- data.frame("Reporter" = c("USA", "USA", "USA", "USA",
"EU","EU", "EU","EU" ),
"Year" = c(1970, 1970, 1980, 1990, 1970, 1980,
1980,1990),
"Val" = c(1,0,1,1,0,0,0,1),
"Val2" = c(0,0,0,1,0,1,0,1))
问题是我有一些重复的国家年份观察,这给我的分析带来了问题。 (美国 1970 年为 val1,欧盟 1980 年为 val2)。
我想删除重复的行,始终保持不匹配分数的最高值 (1)。由于我有数百行的这个问题,我想知道是否有一种自动方法来找出哪些数据是重复的并删除具有较小值的数据
我找到了一种方法来区分重复的行
df1<- df%>% select(Reporter, Year)
df1$duplicat <- duplicated(df1) %>% filter(duplicat=="TRUE")
但我仍然不确定如何根据指定的条件删除它们。通常我会使用 anti_join,但它不起作用,因为 df1 数据匹配两行。
提前感谢您的帮助
【问题讨论】:
标签: r duplicates