为列出的子字符串创建新行

时间:2017-01-11 20:59:49

标签: r

我的目标是在R中创建一个wordcloud,但我正在使用嵌套的JSON数据(这也恰好是令人难以置信的混乱)。

有一个很好的解释here关于如何创建短语而不是单数词的单词云。我也知道reshape2中的melt()可以在整个列中创建新行。 R中有没有办法在嵌套子串上执行类似熔体的函数?

示例:

N        Group     String
1        A         c("a", "b", c")
2        A         character(0)
3        B         a
4        B         c("b", d")
5        B         d

......应该成为:

N        Group     String
1        A         a
2        A         b
3        A         c
4        A         character(0)
5        B         a
6        B         b
7        B         d
8        B         d

...每个后续子字符串返回到下一行。在我的实际数据中,模式c(“x,y”)是一致的,但子串变化太大,无法知道先验。

如果没有好办法做到这一点,太糟糕了......只是想我会问专家!

1 个答案:

答案 0 :(得分:1)

您可以使用separate_rows包中的tidyr

library(tidyverse)

data %>% 
  separate_rows(listcites, sep = ",") %>% # split on commas
  dmap_at("listcites", ~ gsub("^c\\(\"|\")$|\"", "", .x)) # clean up the quotations and parens