14

一个相对简单的问题,但答案似乎让我无法理解。目前,我有一个看起来与此类似的数据框:

0   0   0   1   1
0   1   0   1   1
2   1   1   0   3

我正在尝试将其按行转换为单行数据。我使用了这个unlist函数,它做了我想要的,但是按列给了我。它给了我这个:

0,0,2,0,1,1,0,0,1,1,1,0,1,1,3

但我想要的是:

0,0,0,1,1,0,1,0,1,1,2,1,1,0,3

如果这似乎是一个愚蠢的问题,我深表歉意,但我仍然是 R 的新手。任何帮助(或对可能帮助我处理此问题的函数的推荐)将不胜感激。

4

2 回答 2

24

我们可以t对数据集进行转置( ),然后用c它得到一个向量输出

 c(t(df1))
 #[1] 0 0 0 1 1 0 1 0 1 1 2 1 1 0 3

通过转置,我们将“data.frame”转换为“matrix”。在两者data.framematrixunlist/c操作按列进行。因此,转置将列交换为行,反之亦然,我们得到了预期的结果。

于 2015-08-13T13:16:30.483 回答
3

你也可以试试as.vector()

x<-matrix(c(0,0,2,0,1,1,0,0,1,1,1,0,1,1,3),3,5)

x
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    1    0    1    1
[3,]    2    1    1    0    3

as.vector(t(x))
[1] 0 0 0 1 1 0 1 0 1 1 2 1 1 0 3
于 2015-08-13T13:34:48.617 回答