在R或SQLite中分别将多列中的字符串拆分为新行

时间:2017-01-29 04:35:17

标签: r sqlite r-markdown

我想知道R中是否有任何方法可以将字符串从多列拆分为多行。例如:

从以下内容中拆分:V1 V2 V3 1 A,B,C C,D,F 2 X,Y,Z V,U,

进入V1 V2 V3 1 A C 1 B D 1 C F 2 X V .... 2 Z NA 等等。我能够将它用于第一列,但第二列只打印第一列中的重复项。我正在使用R所以我可以使用SQLite语法的R语法。谢谢!

这是我到目前为止所做的:

split<- strsplit(as.character(Start), as.character(End), split= ";")

split1<-data.frame(id = rep(dataset$id, sapply(split, length)), End = unlist(split), End=unlist(split))

1 个答案:

答案 0 :(得分:2)

我们可以使用separate_rows

tidyr的{​​{1}}
R

另一个选项是library(tidyr) separate_rows(df1, V2, V3) # V1 V2 V3 #1 1 A C #2 1 B D #3 1 C F #4 2 X V #5 2 Y U #6 2 Z T separate_rows(df2, V2, V3) # V1 V2 V3 #1 1 A C #2 1 B D #3 1 C F #4 2 X V #5 2 Y U #6 2 Z

cSplit

数据

library(splitstackshape)
cSplit(df2, 2:ncol(df2), ",", "long")