我有以下数据框:
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
我希望比较每行的pr1
,pr2
,pr3
和pr4
列中的值,并添加一个新列,如果有任何值重复,则表示1任何列中的两次或更多次或说明0.我不希望tr
和tp
列成为比较的一部分。输出数据框应如下所示,并且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
答案 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