逗号分隔的字符串到边界列表
问题描述:
我正在与金融行业成员的员工历史合作,并希望创建一个边界列表以在Sankey Flow中对其进行可视化。到目前为止,我的数据是逗号分隔的实体的字符串,像这样:逗号分隔的字符串到边界列表
A, B, D
C, A, E, B
F, B
等
特别感兴趣的是这些公司之一(称之为B公司为例)。我需要把这些数据之上形成类似这样的:
A, B
B, D
C, B
A, B
E, B
F, B
等
再次,重要的是在B公司,所以我需要一种方法来对因子识别具体而言,和处理字符串不同的长度。最后,我需要一个边界列表,其中每行都有公司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"
+0
这里是一个略短的变化:'s
欢迎SO!你有什么尝试过,没有奏效?请参阅[如何制作一个很好的可重现问题](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 – hrbrmstr