首页 > 解决方案 > 如何在R中将一列拆分为多个(不相等)列

问题描述

我正在使用一个字符串,它是由逗号分隔的元素列表。我想分隔字符串,以便每个元素都有它的列。但是我遇到了麻烦,因为每个列表有不同数量的元素。

X1 <- "a,b,c"
X2 <- "a,b"
X3 <- "a,b,c,d"

DF <- data.frame(Col1= rbind(X1,X2,X3))

      Col1
X1   a,b,c
X2     a,b
X3 a,b,c,d

我希望它看起来像这样。每个元素都有自己的列,而不管字符的字符串中有多少元素。

      Col1  Col2 Col3 Col4
X1     a    b     c
X2     a    b
X3     a    b     c    d

谢谢你!

标签: rstringseparatortidy

解决方案


我们可以cSplit使用splitstackshape

library(splitstackshape)
cSplit(DF, "Col1",",")

-输出

cSplit(DF, "Col1",",")
   Col1_1 Col1_2 Col1_3 Col1_4
1:      a      b      c   <NA>
2:      a      b   <NA>   <NA>
3:      a      b      c      d

推荐阅读