数据框中一行中的重复值

Sen*_*mar 3 r duplicates dataframe

df <- data.frame(label = c("a","b","c"),
                 val=c("x","b","c"),
                 val1=c("z","b","d"))

   label val val1
1     a   x    z
2     b   b    b
3     c   c    d
Run Code Online (Sandbox Code Playgroud)

我想找出每一行中的重复值。对于第一行,第二行没有重复项,“ b”对于第三行是重复项,“ c”是重复项。如何在R编程中找到此重复项。

另外,我需要用NA值替换重复的元素。

WeN*_*Ben 6

使用duplicatedapply

apply(df,1,duplicated)
      [,1]  [,2]  [,3]
[1,] FALSE FALSE FALSE
[2,] FALSE  TRUE  TRUE
[3,] FALSE  TRUE FALSE
Run Code Online (Sandbox Code Playgroud)

并替换为 NA

df[t(apply(df,1,duplicated))]=NA
df
  label  val val1
1     a    x    z
2     b <NA> <NA>
3     c <NA>    d
Run Code Online (Sandbox Code Playgroud)