【问题标题】:generating summary statistics (mean, std, min/max, # obs) over levels of a factor variable在因子变量的水平上生成汇总统计数据(平均值、标准差、最小值/最大值、#obs)
【发布时间】:2022-11-21 11:56:08
【问题描述】:

如何计算因子(分类)变量水平上的连续变量的汇总统计数据(平均值、最小值/最大值、观测值数)?

例如,如果 GPA 是连续变量,成绩是类别变量,分别为第 9、10、11 和 12 级,您有推荐的命令吗?

【问题讨论】:

  • 使用 dplyr,你会做 my_data %>% group_by(grade) %>% summarize(across(GPA, list(mean = mean, min = min, max = max), n = n())
  • 如果您包含一个简单的 reproducible example 以及可用于测试和验证可能的解决方案的示例输入和所需的输出,则可以更轻松地为您提供帮助。

标签: r summary


【解决方案1】:

您可以使用dplyr 手动生成描述,也可以使用describeBytapply 自动打印表格。

library(tidyverse)
library(psych)
data(iris)

## dplyr from zephryl's comment
iris %>% 
  group_by(Species) %>% 
  summarize(across(Sepal.Length, list(mean = mean, min = min, max = max), n = n()))
#> # A tibble: 3 × 4
#>   Species    Sepal.Length_mean Sepal.Length_min Sepal.Length_max
#>   <fct>                  <dbl>            <dbl>            <dbl>
#> 1 setosa                  5.01              4.3               50
#> 2 versicolor              5.94              4.9               50
#> 3 virginica               6.59              4.9               50

## tapply
tapply(iris$Sepal.Length, iris$Species, summary)
#> $setosa
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>   4.300   4.800   5.000   5.006   5.200   5.800 
#> 
#> $versicolor
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>   4.900   5.600   5.900   5.936   6.300   7.000 
#> 
#> $virginica
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>   4.900   6.225   6.500   6.588   6.900   7.900

## psych
describeBy(iris$Sepal.Length, iris$Species)
#> 
#>  Descriptive statistics by group 
#> group: setosa
#>    vars  n mean   sd median trimmed mad min max range skew kurtosis   se
#> X1    1 50 5.01 0.35      5       5 0.3 4.3 5.8   1.5 0.11    -0.45 0.05
#> ------------------------------------------------------------ 
#> group: versicolor
#>    vars  n mean   sd median trimmed  mad min max range skew kurtosis   se
#> X1    1 50 5.94 0.52    5.9    5.94 0.52 4.9   7   2.1  0.1    -0.69 0.07
#> ------------------------------------------------------------ 
#> group: virginica
#>    vars  n mean   sd median trimmed  mad min max range skew kurtosis   se
#> X1    1 50 6.59 0.64    6.5    6.57 0.59 4.9 7.9     3 0.11     -0.2 0.09

【讨论】:

    猜你喜欢
    • 2020-03-28
    • 2020-08-30
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    • 2014-08-04
    • 2012-08-16
    相关资源
    最近更新 更多