两列之间的相似性百分比

Percentage of similarity between two colulmns

假设我有两列:

A  B
1  1
2  2
3  4
4  4
5  4
6  6

有没有一种方法可以计算相似度百分比,以便在上面的示例中我们发现 A 列和 B 列有 67% 相同。

我们可以取 'A' 和 'B' 中元素的 intersect,得到它的 length 然后除以 [=31= 的 nrow ]

paste0(round(100*length(intersect(df1$A, df1$B))/nrow(df1)), "%")
#[1] "67%"

如果在相应元素之间进行比较,请使用 == 而不是 intersectsum 来自逻辑输出的 TRUE 值,除以行数....

paste0(round(100*with(df1, sum(A==B))/nrow(df1)), "%")
#[1] "67%"

或者直接使用mean

paste0(round(100*with(df1, mean(A==B))), "%")
#[1] "67%"

注意:这是我们通过选择任何方法得到相同结果的示例之一。