【发布时间】:2018-03-27 02:52:55
【问题描述】:
我有数据框
df<-data.frame(source=c("a","a","a",'z1','b'),target=c("b","c","d",'a','e'),wsource=c('w1','w2','w1','w2','w1'),wtarget=c('w1','w1','w1','w1','w2'))
source target wsource wtarget
a b w1 w1
a c w1 w1
a d w1 w1
z1 a w2 w1
b e w1 w2
表示一个图(source 和 target 是节点 ID,wsource 和 wtarget 是标签)。我想为每个不同的节点获取它与 wtarget 关联的次数(如果该节点位于源列中)加上它与 wsource 关联的次数(如果该节点是目标列)。
我要找的数据框是:
node w1 w2
a 3 1
b 1 1
c 1 0
d 1 0
e 1 0
z1 1 0
请注意,例如,节点 a 在列 w1 中的 3 来自它作为源出现的三次(查看其对应的 wtarget),并从它所在的第四行获取其在列 w2 中的 1显示为目标(查看其对应的 wsource)。
我尝试先对列进行排序,但在我的应用程序中,节点 ID 是长整数。即使您对它们进行排序,也不能保证一个节点只会出现在一列(源或目标)中。
我想知道处理这个查询的方法。
【问题讨论】:
-
我承认我迷路了。我不明白你在制表什么。
-
我知道,这很难解释。对于每个不同的节点,我需要计算在
wsource和wtarget中分配的w1、w2的数量。但请注意,一个节点可能同时出现在 source 和 target 列中。