【问题标题】:Unlist a data frame by rows, not columns按行而不是按列取消列出数据框
【发布时间】:2015-08-13 13:12:43
【问题描述】:

一个相对简单的问题,但我似乎没有找到答案。目前,我有一个类似于此的数据框:

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

【问题讨论】:

    标签: r vector dataframe unroll


    【解决方案1】:

    我们可以对数据集进行转置(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 操作按列进行。因此,转置将列交换为行,反之亦然,我们得到了预期的结果。

    【讨论】:

    • 非常简单。感谢您的快速回复!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 2014-10-22
      • 2011-05-08
      • 1970-01-01
      • 2020-12-07
      相关资源
      最近更新 更多