r 中的汇总统计信息,作为标题的度量

问题描述

我想为我的数据集创建汇总统计。我试过搜索,但没有找到任何符合我想要的东西。我希望以统计度量作为标题垂直列出列。这是我想要的样子:

平均值 标准差 25%。 中位数 75%。
第 1 列 平均第 1 列 标准列 1 ... ... ...
第 2 列 平均值第 2 列 ... ... ... ...
... ... ... ... ...

我该怎么做?感谢我能得到的任何帮助!:) 如果有一个特定的功能可以使用,我也可以在其中进行一些格式化/样式设置,也将不胜感激,但重点是它应该看起来像描述的那样。 :)

解决方法

您可能想查看 summarytools 包...具有对 markdown 和 html 的内置支持。

library(summarytools)  
descr(iris,stats = c("mean","sd","q1","med","q3"),transpose = TRUE)

## Non-numerical variable(s) ignored: Species
## Descriptive Statistics  
## iris  
## N: 150  
##
##                     Mean   Std.Dev     Q1   Median     Q3
## ----------------- ------ --------- ------ -------- ------
##      Petal.Length   3.76      1.77   1.60     4.35   5.10
##       Petal.Width   1.20      0.76   0.30     1.30   1.80
##      Sepal.Length   5.84      0.83   5.10     5.80   6.40
##       Sepal.Width   3.06      0.44   2.80     3.00   3.30
,

你的问题缺少一些重要的功能,但我认为你想要这样的东西:

仅使用 iris 数据集的数值变量的示例:

iris_numerical<-iris[,1:4]

计算统计数据

new_df<-sapply(iris_numerical,function(x){c(mean=mean(x),SD=sd(x),Q1=quantile(x,0.25),median=median(x),Q3=quantile(x,0.75))})

这为您提供了按列汇总的统计数据

> new_df
       Sepal.Length Sepal.Width Petal.Length Petal.Width
mean      5.8433333   3.0573333     3.758000   1.1993333
SD        0.8280661   0.4358663     1.765298   0.7622377
Q1.25%    5.1000000   2.8000000     1.600000   0.3000000
median    5.8000000   3.0000000     4.350000   1.3000000
Q3.75%    6.4000000   3.3000000     5.100000   1.8000000

然后以所需格式创建最终数据框,以列名作为行名:

new_df<-data.frame(column=colnames(new_df),apply(new_df,1,function(x) x))
> new_df
                   column     mean        SD Q1.25. median Q3.75.
Sepal.Length Sepal.Length 5.843333 0.8280661    5.1   5.80    6.4
Sepal.Width   Sepal.Width 3.057333 0.4358663    2.8   3.00    3.3
Petal.Length Petal.Length 3.758000 1.7652982    1.6   4.35    5.1
Petal.Width   Petal.Width 1.199333 0.7622377    0.3   1.30    1.8
,

我们可以使用 descr 中的 collapse

library(collapse)
descr(iris)