Проверьте cSplit
из моего пакета splitstackshape. Он работает либо с data.frame
s, либо с data.table
s (но всегда возвращает data.table
).
Предполагая, что данные образца KFB, по крайней мере, немного отражают ваши фактические данные, вы можете попробовать:
library(splitstackshape)
cSplit(df, "x", " ")
# x_1 x_2 x_3 x_4
# 1: This is interesting NA
# 2: This actually is not
Еще одна (пылающая) опция заключается в использовании stri_split_fixed
с simplify = TRUE
(от «stringi») (который, очевидно, скоро появится в коде «splitstackshape»):
library(stringi)
stri_split_fixed(df$x, " ", simplify = TRUE)
# [,1] [,2] [,3] [,4]
# [1,] "This" "is" "interesting" NA
# [2,] "This" "actually" "is" "not"