按行而不是列取消列出数据框

Unlist a data frame by rows, not columns

一个相对简单的问题,但答案似乎让我望而却步。目前,我有一个类似于此的数据框:

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 的新手。任何帮助(或对可能帮助我处理此问题的函数的推荐)将不胜感激。

我们可以对数据集进行转置 (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.framematrix 中,unlist/c 操作都是按列进行的。因此,转置将列换成行,反之亦然,我们得到了预期的结果。

你也可以试试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