我有以下数据:
df <- data.frame(
group = c('r1','r2','r3','r4'),
X1 = c('A','B','C','K'),
X2 = c('A','C','M','K'),
X3 = c('D','A','C','K')
)
> df
group X1 X2 X3
1 r1 A A D
2 r2 B C A
3 r3 C M C
4 r4 K K K
我想基于列X1
、X2
和X3
来估算一个 '相似度得分'。比如,在group
r1(或第1行)中,3个元素中有2个是相似的,因此得分为2/3(约67%)。而在group
r4(或第4行),得分将为3/3(100%)。期望的结果如下所示:
> df
group X1 X2 X3 similarity_score
1 r1 A A D .67
2 r2 B C A .33
3 r3 C M C .67
4 r4 K K K 1
我该如何实现这个目标?