我正在寻找一种通用方法来处理需要组合但数据并不总是满足combn
函数假设的情况。
具体来说,我有一个国会议员及其委员会任务的数据框。为了检查这个政治家网络,我想将属于同一委员会的任何成员联系起来(即在它们之间建立联系)。
数据如下所示:
name_id assignment
A000374 Agriculture
A000370 Agriculture
A000055 Appropriations
A000371 Appropriations
A000372 Agriculture
A000376 Foreign
因此,生成的网络数据应如下所示:
from to committee
A000374 A000370 Agriculture
A000055 A000371 Appropriations
问题是我的代码(下面)会引发错误,因为并不总是存在配对(代码中的 ncombn 命令可以识别这种情况。这是正确的方法吗?如果是,如何创建一个通常解决此问题的命令?
这是我的代码,目前:
library(RCurl)
x <- getURL("https://raw.githubusercontent.com/bac3917/Cauldron/master/cstack.csv")
cstack <- read.csv(text = x)
# split the string into two columns that represent name_id and committee assignment
cstack <- cstack %>% separate(namePaste, c("name_id","assignment"))
# use combn and dplyr to create pairs (results in error)
edges<-cstack %>%
group_by(assignment) %>%
do(as.data.frame(t(combn(.[["name_id"]], 2)))) %>%
group_by(V1, V2) %>%
summarise(n( ))