1

嗨,亲爱的,我对列中有重复的数据框有一点问题。我想删除列存在重复项的行。例如我的数据框是这样的:

Value   City    Card.Type   ID
100   Michigan    Silver    001
120   Angeles     Gold      002
NA    Kansas      Gold      002
500   Michigan    Silver    001
800   Texas       Basic     005

您可以看到,在ID列中有两个重复项,一个 for001和一个 for 002。我正在使用unique功能,但我无法删除重复项。我想得到这样的人:

 Value   City    Card.Type   ID
 100   Michigan    Silver    001
 120   Angeles     Gold      002
 800   Texas       Basic     005

谢谢你的帮助。

4

2 回答 2

4

只能使用其“正面”版本。使用构造 -which() 的危险在于,当没有任何行或项目与测试匹配时,当正确的结果是“一切”时,结果which()numeric(0)并且-numeric(0)将返回“无”。使用用途:

 dat[!duplicated(dat), ]  

在这种情况下,没有重复的行,但 OP 认为应该删除一些行,因此显然只考虑了两三列。这很容易适应。只需对 2 或 3 列进行重复测试:

 dat[ !duplicated(dat[ , 2:3] ) , ]
于 2013-04-13T16:38:54.033 回答
3

使用功能duplicated

就像是:

data.subset <- data[!duplicated(data$ID),]

Duplicated 返回一个真/假向量。向量中的第二个重复条目将始终返回TRUE

于 2013-04-13T16:18:32.790 回答