【问题标题】:Saving data frame summary as data frame将数据框摘要保存为数据框
【发布时间】:2014-09-29 18:47:52
【问题描述】:

我使用tapplydata.frame 按因子生成摘要。例如,

s <- with(mtcars, tapply(mpg, cyl, summary))

我看到 s 的类是一个数组。有没有一种简单的方法可以将tapply 输出转换为另一个data.frame

【问题讨论】:

  • aggregate() 可能是比tapply() 更好的函数选择,因为您需要输出。
  • @MrFlick,来自aggregate 的聚合列将是matrix。它需要(有点笨拙)do.call(data.frame, aggregate(...)) 类型的方法。
  • 感谢您测试@AnandaMahto。我在移动设备上,但我不能。

标签: r dataframe summary


【解决方案1】:

典型的做法是使用do.call(rbind, ...),像这样:

do.call(rbind, s)
#   Min. 1st Qu. Median  Mean 3rd Qu. Max.
# 4 21.4   22.80   26.0 26.66   30.40 33.9
# 6 17.8   18.65   19.7 19.74   21.00 21.4
# 8 10.4   14.40   15.2 15.10   16.25 19.2

正如@akrun 之前在 cmets 中提到的,将其包装在 as.data.frame 中会得到一个 data.frame


如果您对替代方案持开放态度,您也可以尝试“data.table”,您可以这样做:

library(data.table)
as.data.table(mtcars)[, as.list(summary(mpg)), by = cyl]
#    cyl Min. 1st Qu. Median  Mean 3rd Qu. Max.
# 1:   6 17.8   18.65   19.7 19.74   21.00 21.4
# 2:   4 21.4   22.80   26.0 26.66   30.40 33.9
# 3:   8 10.4   14.40   15.2 15.10   16.25 19.2

【讨论】:

    猜你喜欢
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    相关资源
    最近更新 更多