我使用tapply
按data.frame
的因子生成摘要。如,
s <- with(mtcars, tapply(mpg, cyl, summary))
我看到s的类是一个数组。有没有一种简单的方法可以将tapply
输出转换为另一个data.frame
?
答案 0 :(得分:4)
典型的方法是使用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
。
如果你对替代品持开放态度,你也可以试试&#34; data.table&#34;,你可以做到:
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