拆分字符组合并重新整形R

时间:2017-08-24 09:46:40

标签: r reshape strsplit do.call

我正在努力建立一个专利网络。我有一个示例数据帧(aa),其中包含ID变量(原点)和字符串字符(目标)。我想将字符串字符拆分为单独的组,然后以长格式将其添加回数据帧,以便它显示为新的数据帧(ab)。我尝试过将strsplit,do.call和reshape函数结合起来尝试了一些事情,但无济于事。感谢任何帮助。

来自

aa<-data.frame(Origin=c(1,2,3),Target=c('a b c','d e','f g a b'))
aa

ab<-data.frame(Origin=c(rep(1,3),rep(2,2),rep(3,4)), Target=c('a','b','c','d','e','f','g','a','b'))
ab 

1 个答案:

答案 0 :(得分:1)

您可以结合使用strsplitmutateunnest函数

来实现这一目标
library(dplyr)
library(tidyr)

aa %>% mutate(Target = strsplit(as.character(Target), " ")) %>% unnest(Target)

#   Origin Target
# 1      1      a
# 2      1      b
# 3      1      c
# 4      2      d
# 5      2      e
# 6      3      f
# 7      3      g
# 8      3      a
# 9      3      b