2

我有一个这样的数据框:

COL1  COL2  COL3 

   a           h
   b     f    
   c     g       
   d           j

我想要以下输出:

 COL  
   a    
   b    
   c    
   d   
   f   
   g   
   h   
   j   

如何做到这一点?提前致谢!

4

3 回答 3

9

如果您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))))

如果您的数据作为因子输入,这可能会很有用。

另外,在您的问题中,您看起来实际上并没有基本的“向量”,而是 one-column data.frame。因此,类似的东西dat2 <- data.frame(COL = c(na.omit(as.character(unlist(dat, use.names=FALSE)))))可能就是您正在寻找的东西。

于 2012-10-09T08:45:12.997 回答
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 的单独输入,因此您只需将所有内容连接到一个向量中。

于 2012-10-17T15:06:40.947 回答
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"
于 2012-10-17T15:11:48.543 回答