removing/overwriting 重复的信息行

removing/overwriting duplicate rows of information

你好,我有一个数据集,我会保持它非常基础,尽管实际上它要复杂得多。

 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))

我在第一列中有不同的组。第二列是导致我出现问题的原因。有时在我的数据中有重复的行,从某种意义上说,通过用 NA 替换 value1 为相同的 value2+group 组合创建了一个额外的行。

例如,第 1 行和第 2 行除了 NA/5 之外是相同的。我认为第 2 行 'value1' 列中的“5”是正确的行和正确的值。

我有没有办法过滤此数据集以删除重复项,因为重复项被视为行,其中每个值都匹配,但 'value1'、 按 'group' 列分组。此外,如果这可以以 不涉及以某种方式对 NA 进行过滤的方式完成 - 它们只是一个示例,在我的真实场景中它们可能是 'XYZ'

所以所需的解决方案是删除:

第 1 行, 第 4 行, 第 5 行, 第 6 行,

结果数据集 = 第 2、3、7 行

根据描述

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