两列之间的相似度百分比

DAT*_*BOI 2 compare r col

假设我有两列:

A  B
1  1
2  2
3  4
4  4
5  4
6  6
Run Code Online (Sandbox Code Playgroud)

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

akr*_*run 5

我们可以取intersect'A'和'B'中的元素,得到它length并除以nrow'df1'

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

如果比较结果为相应的元件之间,使用==代替intersectsum从逻辑输出,除以行数的真实值....

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

或者只是使用 mean

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

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