【发布时间】:2014-03-14 08:18:56
【问题描述】:
我有一个如下所示的数据集:
df <- structure(list(Claim.Num = c(500L, 500L, 600L, 600L, 700L, 700L,
100L, 200L, 300L), Amount = c(NA, 1000L, NA, 564L, 0L, 200L,
NA, 0L, NA), Company = structure(c(NA, 1L, NA, 4L, 2L, 3L, NA,
3L, NA), .Label = c("ATT", "Boeing", "Petco", "T Mobile"), class = "factor")), .Names =
c("Claim.Num", "Amount", "Company"), class = "data.frame", row.names = c(NA,
-9L))
我想根据 Claim Num 值删除重复行,但要根据以下条件删除重复行:df$Company == 'NA' | df$Amount == 0
换句话说,删除记录 1、3 和 5。
我已经走到这一步了:df <- df[!duplicated(df$Claim.Num[which(df$Amount = 0 | df$Company == 'NA')]),]
代码运行没有错误,但实际上并未根据所需条件删除重复行。我认为这是因为我告诉它删除任何与这些标准匹配的重复索赔编号,但不要删除任何重复的Claim.Num,而是优先处理某些金额和公司以进行删除。请注意,我不能根据指定的值简单地过滤掉数据集,因为还有其他可能具有 0 或 NA 值的记录需要包含(例如,不应排除记录 8 和 9,因为它们的 Claim.Nums不重复)。
【问题讨论】:
标签: r duplicates