根据条件创建摘要统计

时间:2015-08-21 20:18:40

标签: r

通常我会根据条件进行汇总统计

summary(data$how_fast[data$weight == 'Medium' & data$height == 'High'], basic = T)

但我想要的是输出每个变量的所有摘要统计数据。

summary(data[data$weight == 'Medium' & data$height == 'High'], basic = T)

因此,我们不仅可以获取$how_fast的摘要统计信息,还可以获取$start_speed$medals等其他变量的摘要统计信息。

理想情况下,它会存储在一个很棒的表中(尽管我相信你可以使用rtf package来完成)。

1 个答案:

答案 0 :(得分:0)

by允许您将函数应用于数据框。输出是一个基于您的分组具有维度的数组。

dat <- data.frame(A = rep(1:2, each = 10), 
    B = rep(1:2, times = 10), C = rpois(20, 1))
by(data = dat, INDICES = dat[c("A", "B")], FUN = summary, basic = TRUE)
# A: 1
# B: 1
#        A           B           C      
#  Min.   :1   Min.   :1   Min.   :0.0  
#  1st Qu.:1   1st Qu.:1   1st Qu.:0.0  
#  Median :1   Median :1   Median :0.0  
#  Mean   :1   Mean   :1   Mean   :0.6  
#  3rd Qu.:1   3rd Qu.:1   3rd Qu.:1.0  
#  Max.   :1   Max.   :1   Max.   :2.0  
# ------------------------------------------------------------- 
# ...

这使您可以汇总data.frame中的所有分组。要申请单个子集,您可以使用lapply

lapply(X = dat[dat$A == 1 && dat$B == 1, ], 
    FUN = summary, basic = TRUE)
# $A
#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#     1.0     1.0     1.5     1.5     2.0     2.0 
#
# $B
#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#     1.0     1.0     1.5     1.5     2.0     2.0 
#
# $C
#    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#     0.0     0.0     1.0     0.9     1.0     3.0