代码之家  ›  专栏  ›  技术社区  ›  jay.sf

如何在拆分和重新组装数据帧时保留单个观测值的行名称?

  •  1
  • jay.sf  · 技术社区  · 7 年前

    在拆分数据帧并使用 do.call(rbind, x)

    l1 <- split(mtcars, mtcars$disp)
    # ... doing some stuff with l1
    d <- do.call(rbind, l1)
    d[10:15, ]
    > d[10:15, ]
                       mpg cyl  disp  hp drat    wt  qsec vs am gear carb
    140.8             22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
    145               19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
    146.7             24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
    160.Mazda RX4     21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
    160.Mazda RX4 Wag 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
    167.6.Merc 280    19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
    

    预期产出: 在本例中,与 mtcars 使用原始行名,至少没有上述问题中丢失的车名。

    有什么补救办法吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   jay.sf    7 年前

    你可以用 unname

    > d <- do.call(rbind, unname(l1))
    > d[10:15, ]
                   mpg cyl  disp  hp drat    wt  qsec vs am gear carb
    Merc 230      22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
    Ferrari Dino  19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
    Merc 240D     24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
    Mazda RX4     21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
    Mazda RX4 Wag 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
    Merc 280      19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4