【发布时间】:2021-11-15 21:47:46
【问题描述】:
所以我正在为基于 IMDb 数据的社交网络分析创建一个边缘文件。 我遇到了一个问题,我不知道如何解决它,因为我是 R 新手。
假设我有以下数据框:
movieID <- c('A', 'A','A', 'B','B', 'C','C', 'C')
crewID <- c('Z', 'Y', 'X', 'Z','V','V', 'X', 'Y')
rating <- c('7.3','7.3', '7.3', '2.1', '2.1', '9.0','9.0', '9.0')
df <- data.frame(movieID, crewID, rating)
| movieID | CrewID | Rating |
|---|---|---|
| A | Z | 7.3 |
| A | Y | 7.3 |
| A | X | 7.3 |
| B | Z | 2.1 |
| B | V | 2.1 |
| C | V | 9.0 |
| C | X | 9.0 |
| C | Y | 9.0 |
我正在尝试在电影中构建独特的 CrewID 对,其权重等于该对的出现次数,这意味着这两个工作人员一起制作电影的频率。所以基本上我想要一个像下面这样的数据框:
| CrewID1 | CrewID2 | weight | (not a col but explanation) |
|---|---|---|---|
| Z | Y | 1 | together once in movie A |
| Z | X | 1 | together once in movie A |
| Y | X | 2 | together twice in movies A and C |
| Z | V | 1 | together once in movie B |
| V | X | 1 | together once in movie C |
| V | Y | 1 | together once in movie C |
(Z,Y) 和 (Y,Z) 对彼此相等,因为我不关心方向。
我在类似的问题上找到了以下 StackOverflow 线程: How to create pairs from a single column based on order of occurrence in R?
但是在我的情况下,这会跳过 (V,Y) 和 (X,Z) 的组合,并且 (X,Y) 的计数仍然是 1,我不知道如何解决它。
【问题讨论】:
-
你能和
dput分享你的第一个data.frame吗?这将使人们更容易为您提供帮助,因为他们可以复制粘贴代码以读取您的数据的 sn-p。
标签: r network-analysis edge-list