2016-02-13 61 views
2

假設我有一個看起來像這樣的列的數據幀:填充柱與NA爲短串

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 
+0

'data.table :: setDT(E)[,tstrsplit(V1,「\\ s +」)]'或'splitstackShape :: cSplit(E,「V1」,「」)' –

+0

什麼是'colsplit2df '? – lukeA

+0

@lukeA https://trinker.github.io/qdap/colsplit2df.html –

回答

2

你可以做

library(splitstackshape) 
cSplit(E, 1, " ") 
#   V1_1 V1_2 V1_3 
# 1:   a brown fox 
# 2: something NA NA 
# 3:  else NA NA 
+0

感謝您的解決方案。我相信這樣做可以很好地工作,只是給未來的讀者一個筆記,@DavidArenburg在評論中提供了一個「data.table」解決方案 –