R 将逗号分隔的字符串添加到Edgelist

R 将逗号分隔的字符串添加到Edgelist,r,network-analysis,R,Network Analysis,我正在研究金融行业成员的员工历史,并希望成为一名边缘主义者,将其可视化到Sankey流程中。到目前为止,我的数据是以逗号分隔的实体字符串表示的,如下所示: A, B, D C, A, E, B F, B 等等 特别令人感兴趣的是其中一家公司(例如称之为B公司)。我需要将上述数据转换为类似的内容: A, B B, D C, B A, B E, B F, B 等等 同样,重要的是B公司,所以我需要一种方法来识别这个因素,并处理不同长度的字符串。最后,我需要一个edgelist,其中每一行都有公司

我正在研究金融行业成员的员工历史,并希望成为一名边缘主义者,将其可视化到Sankey流程中。到目前为止,我的数据是以逗号分隔的实体字符串表示的,如下所示:

A, B, D
C, A, E, B
F, B
等等

特别令人感兴趣的是其中一家公司(例如称之为B公司)。我需要将上述数据转换为类似的内容:

A, B
B, D
C, B
A, B
E, B
F, B
等等


同样,重要的是B公司,所以我需要一种方法来识别这个因素,并处理不同长度的字符串。最后,我需要一个edgelist,其中每一行都有公司B,数据以逗号分隔的字符串形式从公司B周围的公司获取。

在R中有几种方法可以做到这一点。在基本R中有一种方法可以做到这一点:

myc <-c("A,B,D","C,A,E,B","F,B")
myc <-strsplit(myc,",") #split value on comma

res <-lapply(myc,combn,2,simplify = FALSE) #create cominations
out <-matrix(unlist(res),ncol=2,byrow=TRUE) #create dataframe of combinations
out[colSums(apply(out,1,match,"B"),na.rm=TRUE)==1,] #keep only combinations with "B"
     [,1] [,2]
[1,] "A"  "B" 
[2,] "B"  "D" 
[3,] "C"  "B" 
[4,] "A"  "B" 
[5,] "E"  "B" 
[6,] "F"  "B" 

myc欢迎来到SO!你试过哪些不起作用的?请同时查看。这里有一个非常简短的变体:
s