R 将数据框摘要另存为数据框

R 将数据框摘要另存为数据框,r,dataframe,summary,R,Dataframe,Summary,我使用tapply为data.frame按因子生成摘要。例如: s <- with(mtcars, tapply(mpg, cyl, summary)) s典型的方法是使用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 2

我使用
tapply
data.frame
按因子生成摘要。例如:

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

s典型的方法是使用
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在前面的评论中提到的,将其包装成
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

给定所需的输出,
aggregate()
可能是比
tapply()
更好的函数选择。@MrFlick,aggregate
中的聚合列将是一个
矩阵。它需要一种(有点笨拙的)
do.call(data.frame,aggregate(…)
类型的方法。感谢您对@AnandaMahto进行测试。我在一个移动设备上,但我不能。