【发布时间】:2018-02-14 01:03:24
【问题描述】:
假设我有以下df
df <- data.frame(col1 = c(1, 3, 1), col2 = c(2, 4, 2), col3 = c(NA, NA, "c"))
> df
col1 col2 col3
1 1 2 <NA>
2 3 4 <NA>
3 1 2 c
我的目标是删除基于col1 和col2 的所有重复行,以便较长的行“存活”。在这种情况下,应该删除第一行。我试过了
df[duplicated(df[, 1:2]), ]
但这只给了我第三行(而不是第三行和第二行)。怎么做才合适?
编辑:真正的df 有15 列,其中前13 列用于识别重复项。在最后两列中,大约 2/3 的行填充了 NA(前 13 列不包含任何 NA)。因此,我的示例df 具有误导性,因为要排除两列来识别重复项。我很抱歉。
【问题讨论】:
-
如果有两行具有相同的
col1和col2并且都具有非NAcol3怎么办?你应该保留两者吗?删除第一个? -
我应该提到这个案例不存在。
标签: r dataframe duplicates