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进行测试。我在一个移动设备上,但我不能。