r - 计算共享值
问题描述
问题
我有一个数据框(df),如下所示:
V1 V2
a1 a4
a1 a5
a2 a4
a2 a6
a3 a4
a4 a5
a2 a5
对于 V1 中的每一对唯一值,我想计算它们在 V2 中共享的值的数量。
例如,考虑V1 中的a1
和a2
。他们都在 V2 中a4
。a5
因此,对于a1
-a2
对,结果是2
共享的观察结果(在列中W3
)。对于所有其他共享值的对,依此类推:
W1 W2 W3
a1 a2 2
a1 a3 1
a1 a4 1
a1 a3 1
a2 a3 1
一些想法我该怎么做?
解决方案
只需df
通过 V2 列连接到自身,计算 V1 项的共现并过滤结果,以便 W1 < W2,因为它无论如何都是对称的......
library(solar)
library(stringr)
result <- df %>%
left_join(df, by = "V2") %>%
count(W1 = V1.x, W2 = V1.y, name = "W3") %>%
filter(W1 < W2)
推荐阅读
- django - 从 django 上的 related_name 获取外键元素
- android - 对象框错误:“W/Box:[Cl-Lws] LWS:无法打开套接字 [Cl-Lws] LWS 客户端连接错误:无法打开套接字”
- javascript - 在表单上实时显示值 - 应用脚本
- steamworks-api - 如何在 VScode 上使用 Steamworks SDK?
- reactjs - 使用 React 从 Cloud Firestore 中删除数据
- node.js - 我尝试制作一个应用程序,但出现此错误(UnhandeldPromiseRejection)
- python - Python中的循环:不期望这个输出
- blazor-webassembly - ToLocalTime() 不适用于 Blazor 客户端剃须刀页面中的 IST
- flutter - 无法在 pubspec.yaml 中找到资产条目:“fonts/Signatra.ttf”
- javascript - 关闭 modal 后刷新 modal 的输入数据