用NA替换重复的元素,而不是删除它们

时间:2016-05-18 17:05:23

标签: r

我有DF。其中一列似乎是

DF$A
A
    a
    a
    a
    b
    b
    b
    c
    c

我正在尝试使用NA替换此列中的所有重复字符。 天真地,我试过

DF$A <- DFl[duplicated(DF$A),] <- NA

但它只是将整个DF转换为NA值。谢谢你的任何建议。

2 个答案:

答案 0 :(得分:8)

你非常接近。我不确定DFl是什么。但这有效......

DF <- data.frame(A=c("a", "a", "a", "b", "b", "c"))
DF$A[duplicated(DF$A)] <- NA
> DF
     A
1    a
2 <NA>
3 <NA>
4    b
5 <NA>
6    c

答案 1 :(得分:2)

从上面的示例开始,如果您有一个包含多列的文件,并且希望对每一列都执行相同操作,则可以使用以下方法:

 DF <- data.frame(col1=c("a","b","a","c","b","c"),col2=c("b","c","c","c","a","a"))


for(i in 1:ncol(DF)){
  DF[,i][duplicated(DF[,i])] <- NA 
}