我有以下代码
t <- tapply(z[,3],z[,1],summary)
# > t
# $AUS
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# -0.92420 -0.57920 0.08132 -0.13320 0.35940 0.39650
#
# $NZ
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# -1.80700 -0.98980 -0.98310 -0.57470 0.02292 0.88330
我希望将其显示为
Min. 1st Qu. Median Mean 3rd Qu. Max.
Aus -0.92420 -0.57920 0.08132 -0.13320 0.35940 0.39650
NZ -1.80700 -0.98980 -0.98310 -0.57470 0.02292 0.88330
如何在R?
中完成答案 0 :(得分:5)
尝试
do.call(rbind, t)
rbind
t
顺便说一下。特别是对于你正在做的事情,你也可以通过简单地使用
来实现它t(sapply(z[, c(1,3)], summary))
答案 1 :(得分:2)
您应该考虑使用data.table
进行此类分析。在此,我创建了z
作为包含Country
和GDP
列的两列数据框:
library(data.table)
data.table(z)[, as.list(summary(GDP)), by="Country"]
产生
Country Min. 1st Qu. Median Mean 3rd Qu. Max.
1: AUS 0.005469 0.1822 0.4193 0.4182 0.6032 0.9437
2: NZ 0.034400 0.3248 0.4838 0.5269 0.7648 0.9968
data.table
将列表返回值视为包含列。