【问题标题】:R, data frame orderR,数据帧顺序
【发布时间】:2017-03-04 22:32:49
【问题描述】:

我是 R 新手,我正在尝试解决这个问题。

我有两个刚刚从 csv 读取的数据框(df1 和 df2)。

df1:                    df2:

      val                    val
1     a1                1    a2
2     b1                2    b2
3     c1                3    c2
4     d1                4    d2

问题是我想创建一个只有一列的新数据框,其中包含来自两个 csv 交错的信息。比如:

      val 
1     a1
2     a2
3     b1
4     b2
5     c1
6     c2
7     d1
8     d2

非常感谢您的帮助。

【问题讨论】:

    标签: r csv dataframe


    【解决方案1】:

    这是Map的另一个选项

    data.frame(val = c(mapply(c, df1$val, df2$val)))
    #   val
    #1  a1
    #2  a2
    #3  b1
    #4  b2
    #5  c1
    #6  c2
    #7  d1
    #8  d2
    

    或者

    data.frame(val =  c(t(do.call(cbind, list(df1, df2)))))
    

    【讨论】:

      【解决方案2】:

      交错两个向量的一种方法是使用rbind创建一个矩阵,每个向量为一行,然后将矩阵转换为向量;由于数据在矩阵中的存储方式(按列)​​,此向量将交替从行中提取元素:

      data.frame(val = as.vector(rbind(df1$val, df2$val)))
      
      #  val
      #1  a1
      #2  a2
      #3  b1
      #4  b2
      #5  c1
      #6  c2
      #7  d1
      #8  d2
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多