【发布时间】:2016-02-13 22:17:35
【问题描述】:
假设我有一个数据框,其列如下所示:
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
【问题讨论】:
-
data.table::setDT(E)[, tstrsplit(V1, "\\s+")]或splitstackshape::cSplit(E, "V1", " ") -
colsplit2df是什么? -
@DavidArenburg 我不认为这是重复的,因为引用的问题是询问 equal length 字符串。他们将每行的 1 个术语分成 2 列。这个问题都是关于不同的字符串长度。
-
默认情况下,90% 的解决方案都可以正常工作,这并不重要。您可以在那里看到完全相同的
cSplit和tstrsplit解决方案。这是大约 100 个(至少)类似问题的欺骗。我真的很惊讶你没有在 Google 上找到这个。