比较r数据帧中几列的值

时间:2017-06-27 13:35:54

标签: r

我有以下数据框:

pr1  tr     pr2   tp    pr3  pr4 
A    tt      B    34     C    C
A    tg      A    45     A    B
K    hj      H    45     I    J
B    jk      1    67     2    3
0    12      0    78     A    A

我希望比较每行的pr1pr2pr3pr4列中的值,并添加一个新列,如果有任何值重复,则表示1任何列中的两次或更多次或说明0.我不希望trtp列成为比较的一部分。输出数据框应如下所示,并且temp列指示1或0。

pr1  tr     pr2  tr3    pr3  pr4  temp
A    tt     B    34     C    C    1
A    tg     A    45     A    B    1
K    hj     H    45     I    J    0
B    jk     1    67     2    3    0
0    12     0    78     A    A    1

1 个答案:

答案 0 :(得分:1)

我们可以通过遍历行

来使用anyDuplicated
df1$temp <- as.integer(apply(df1[grepl("pr\\d+", names(df1))], 1, FUN = anyDuplicated) >0)
df1$temp
#[1] 1 1 0 0 1