简体   繁体   English

使用 dplyr 获取基本统计数据(最小值、平均值、最大值、标准差)?

[英]Obtain basic statistics (min, mean, max, sd) using dplyr?

I have a basic dataframe:我有一个基本的数据框:

a = c(1,4,3,5)
b = c(3,6,3,11)

mydata = data.frame(a,b)

I would like to obtain the same dataframe (two columns a and b), but the basic statistics as lines.我想获得相同的数据框(两列 a 和 b),但基本统计数据为行。

Is there a dplyr command for this?有 dplyr 命令吗?

It may be better to have the data in 'long' format and then do the summary以“长”格式获取数据然后进行汇总可能会更好

library(dplyr)
library(tidyr)
mydata  %>%
      pivot_longer(everything()) %>%
      group_by(name) %>%
       summarise_at(vars(value), list(Min = min, Mean = mean, Max = max, Sd = sd))
# A tibble: 2 x 5
#  name    Min  Mean   Max    Sd
#  <chr> <dbl> <dbl> <dbl> <dbl>
#1 a         1  3.25     5  1.71
#2 b         3  5.75    11  3.77

We can use sapply :我们可以使用sapply

sapply(mydata, summary)

#>            a     b
#> Min.    1.00  3.00
#> 1st Qu. 2.50  3.00
#> Median  3.50  4.50
#> Mean    3.25  5.75
#> 3rd Qu. 4.25  7.25
#> Max.    5.00 11.00 

or if you don't want the quartiles:或者如果你不想要四分位数:

sapply(mydata, function(x) list(Min = min(x), Mean = mean(x), 
                                Max = max(x), Sd = sd(x)))

A tidyverse solution would be possible using purrr::map :使用purrr::map可以实现tidyverse解决方案:

library(purrr)

mydata %>% 
    map(~summary(.)) %>% 
    rbind.data.frame

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用 dplyr 跨共享相似名称的列计算按行汇总统计信息,例如平均值、最大值、最小值 - compute row-wise summary statistics such as mean, max, min across columns sharing similar names using dplyr 使用 dplyr 分组时如何计算均值、最小值和最大值? - How to calculate mean , min, and max across when grouping using dplyr? 重新缩放向量,不包含平均值,标准差,最小值和最大值 - Rescale vector without mean, sd, min and max 使用dplyr的最小/最大斜率 - min/max slope using dplyr 使用 dplyr 管道将列中的 min 或 max 等统计信息返回到行中 - Return statistics like min or max from columns into rows with dplyr pipeline 如何计算时间戳的平均值,中位数,sd,最小值和最大值 - How to calculate mean, median, sd , min and max value for a time stamp 为R中的N,Min / Max,SD,Mean和Median创建表 - Create a table for N, Min/Max, SD, Mean, and Median in R R - 具有预定义的min,max,mean和sd值的随机分布 - R - random distribution with predefined min, max, mean, and sd values 使用dplyr或aggregte函数每10分钟计算一次几何平均值 - Calculating geometric mean every 10 min using dplyr or aggregte function 创建一个符合以下参数的假数据集:N、mean、sd、min 和 max - Create a fake dataset that fits the following parameters: N, mean, sd, min, and max
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM