【问题标题】:Spilt one column into more using space [duplicate]使用空间将一列拆分为更多[重复]
【发布时间】:2020-02-09 14:22:23
【问题描述】:

我有这个数据框。

dtext <- data.frame(text = c("John Marl","Anna Choi Lo","Erl Con"))

我想将它分成多个列,使用单词之间的空格分隔,我尝试了这个。 data.frame(do.call('rbind', strsplit(as.character(dtext$text),' ',fixed=TRUE))) 然而这是输出:

 X1   X2   X3
John Marl John
Anna Choi   Lo
Erl  Con  Erl

这是预期的输出

 X1   X2   X3
John Marl 
Anna Choi   Lo
Erl  Con 

我该如何解决?

【问题讨论】:

  • splitstackshape::cSplit(dtext, "text", " ")

标签: r


【解决方案1】:

您可以使用 tidyr

library(tidyr)
dtext <- data.frame(text = c("John Marl","Anna Choi Lo","Erl Con"))
dtext <- dtext %>% separate(text, c('A', 'B', 'C'), fill = 'right')
dtext[is.na(dtext)] <- ''
dtext
#>      A    B  C
#> 1 John Marl   
#> 2 Anna Choi Lo
#> 3  Erl  Con

reprex package (v0.3.0) 于 2020-02-09 创建

我已按照 G.Grothendiek 的建议添加了 fill = 'right'。另见here

【讨论】:

  • @G. Grothendiek 谢谢你的提示。我已经做出改变了。
猜你喜欢
  • 2017-12-16
  • 2017-03-28
  • 2015-07-28
  • 2013-12-03
  • 1970-01-01
  • 2018-06-09
  • 2013-01-23
相关资源
最近更新 更多