2012-10-09 16 views
1

我有這樣一個數據幀:摺疊data.frame到載體

COL1 COL2 COL3

a   h 
b f  
c g   
d   j 

我想以下輸出:

COL
a
b
Ç
d
˚F

ħ
Ĵ

如何這可以做什麼? 在此先感謝!

回答

6

如果您data.frame名爲dat,嘗試:

unlist(dat, use.names=FALSE) 

你可能也想嘗試以下操作:

as.character(unlist(dat, use.names=FALSE)) 
c(na.omit(as.character(unlist(dat, use.names=FALSE)))) 

如果你的數據作爲輸入的因素,這可能是有用的。

此外,在你的問題中,你似乎並沒有一個基本的「矢量」,而是一列data.frame。因此,像dat2 <- data.frame(COL = c(na.omit(as.character(unlist(dat, use.names=FALSE)))))這樣的東西可能是你要找的東西。

4
do.call(c, your_data_frame) 

一個例子:

> dat <- data.frame(a = 1:3, b = 2:4) 
> do.call(c, dat) 
a1 a2 a3 b1 b2 b3 
1 2 3 2 3 4 

這需要的data.frame中的每一列,並把它作爲一個獨立的輸入轉換成C所以你剛纔的一切串連成一個單一的載體。

+3

或'不公開(DAT)'。 –

+0

嗨達森。首先感謝。我試過了,但是會出現以下錯誤:do.call(c,dat)中的錯誤: '什麼'必須是字符串或函數 – Bnf8

+0

@ Bnf8,聽起來就像在某處使用'c'作爲變量名。試試'do.call(base :: c,your_data_frame)'。 –

3

你可以使用unlist

dat <- data.frame(A1 = letters[1:3], 
        A2 = letters[2:4], 
        A3 = c("f", "a", "b"), stringsAsFactors = FALSE) 

unlist(dat) 

# A11 A12 A13 A21 A22 A23 A31 A32 A33 
# "a" "b" "c" "b" "c" "d" "f" "a" "b"