【问题标题】:Combine a dataframe and a list of dataframes into a one-dimensional list of dataframes, R将数据框和数据框列表组合成一维数据框列表,R
【发布时间】:2021-07-05 07:32:21
【问题描述】:

这应该很容易,但我不知道如何。我有一个数据框和一个包含两个数据框的列表。现在我想将它们组合在一起,这样我就有了一个包含三个数据框的列表。而且我不想“手动”做。

a = data.frame(xa = 1:10,
               ya = 11:20)
b = list(c = data.frame(x = 1:10),
         d = data.frame(x = 1:20,
                        y = 11:30))

现在我想到了这样的事情:

res = c(a, b)

但这会导致:


> sapply(res, class)
          xa           ya            c            d 
   "integer"    "integer" "data.frame" "data.frame" 

因此它将单个数据框的两列转换为向量。 如何维护“单个”数据帧的数据帧结构并从 2 列表中提取数据帧?

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    您可以使用c,但您必须将您的data.frame 覆盖到一个列表中。

    res <- c(b, list(a=a))
    
    str(res)
    #List of 3
    # $ c:'data.frame':      10 obs. of  1 variable:
    #  ..$ x: int [1:10] 1 2 3 4 5 6 7 8 9 10
    # $ d:'data.frame':      20 obs. of  2 variables:
    #  ..$ x: int [1:20] 1 2 3 4 5 6 7 8 9 10 ...
    #  ..$ y: int [1:20] 11 12 13 14 15 16 17 18 19 20 ...
    # $ a:'data.frame':      10 obs. of  2 variables:
    #  ..$ xa: int [1:10] 1 2 3 4 5 6 7 8 9 10
    #  ..$ ya: int [1:10] 11 12 13 14 15 16 17 18 19 20
    

    【讨论】:

      【解决方案2】:

      您可以随时将其添加为新元素

      b[["a"]]=a
      

      “a”可以用在循环或类似的地方。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-23
        • 1970-01-01
        • 1970-01-01
        • 2019-03-01
        • 1970-01-01
        • 2016-06-25
        • 1970-01-01
        相关资源
        最近更新 更多