您好我有一个数据集,我会保持它非常基本,但实际上它要复杂得多。
mydata= data.frame(group=c(1,1,1,2,2,3,3,3), value=c(NA, 5,3,2,NA,NA,NA,9),value2=c(6,6,9,8,8,99,99,99))
我在第一列中有不同的组。第二列是造成我问题的原因。偶尔在我的数据中有重复的行,在某种意义上,通过将value1替换为NA,为相同的value2 +组合组合创建了一个额外的行。
例如,除了NA / 5之外,第1行和第2行是相同的。我考虑第2行,使用' 5'在' value1'列是正确的行和正确的值。
我是否有办法过滤此数据集以删除重复项,因为重复项被视为每个值都匹配的行,除了' value1',按'组&#39分组;柱即可。此外,如果这可以通过不涉及过滤纳斯的方式来完成 - 它们只是一个例子,在我的真实场景中,它们可能是' XYZ'
所以理想的解决方案是删除:
第1行, 第4行, 第5行 第6行,结果数据集=第2,3,7行
答案 0 :(得分:2)
基于描述
library(dplyr)
mydata %>%
group_by(group) %>%
filter( !((duplicated(value2)|duplicated(value2,
fromLast=TRUE)) & is.na(value)))
# group value value2
# 1 1 5 6
# 2 1 3 9
# 3 2 2 8
# 4 3 9 99