R:将一列中的单词提取到不同的列中

时间:2015-06-28 17:55:02

标签: r multiple-columns

我现在已经花了几个小时搞清楚这一点。 让我们说我有一个1-4字的列,用空格分隔:

aba bkak absbs
a2aj akls bios
sad
fasa lgk
.
.
.

我希望这些单词位于不同的列中,以便于进一步处理。所以相反,这些单词在一列中,我如何让它们分开列?

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

尝试

library(splitstackshape)
cSplit(df1, 'V1', ' ')

或者

library(tidyr)
separate(df1, 'V1', paste0('V', 1:4), sep= ' ', extra='drop')

或使用base R

read.table(text=df1$V1, sep=' ', fill=TRUE)

注意:将列名称用作“V1”,将数据集用作“df1”

答案 1 :(得分:4)

使用data.table的开发版本也可以

library(data.table) # V >= 1.9.5
setDT(df)[, tstrsplit(V1, ' ')]
#      V1   V2    V3
# 1:  aba bkak absbs
# 2: a2aj akls  bios
# 3:  sad   NA    NA
# 4: fasa  lgk    NA

stringi(虽然你会得到一个矩阵)

library(stringi)
stri_split_fixed(df$V1, ' ', simplify = TRUE)