提问人:Hack-R 提问时间:2/14/2016 最后编辑:Tyler RinkerHack-R 更新时间:2/22/2016 访问量:61
拆分为列时,用 NA 填充列以获得较短的字符串
Fill columns with NA for shorter strings when splitting to columns
问:
假设我有一个 DataFrame,其中的列如下所示:
E <- data.frame(
c("a brown fox"),
c("something"),
c("else")
)
E <- as.data.frame(t(E))
V1
c..a.brown.fox.. a brown fox
c..something.. something
c..else.. else
我想把它分成这样的列:
V1 V2 V3
a brown fox
something NA NA
else NA NA
但它看起来像这样:
pacman::p_load(qdap) # or use library() or whatever
colsplit2df(E, sep = " ")
X1 X2 X3
c..a.brown.fox.. a brown fox
c..something.. something something something
c..else.. else else else
答:
2赞
lukeA
2/14/2016
#1
你可以做
library(splitstackshape)
cSplit(E, 1, " ")
# V1_1 V1_2 V1_3
# 1: a brown fox
# 2: something NA NA
# 3: else NA NA
评论
0赞
Hack-R
2/14/2016
感谢您的解决方案。我相信这会正常工作,并且只是给未来的读者一个注释,@DavidArenburg在评论中提供了解决方案data.table
评论
data.table::setDT(E)[, tstrsplit(V1, "\\s+")]
或splitstackshape::cSplit(E, "V1", " ")
colsplit2df
cSplit
tstrsplit