簡體   English   中英

使用 dplyr 獲取基本統計數據(最小值、平均值、最大值、標准差)?

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

我有一個基本的數據框:

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

mydata = data.frame(a,b)

我想獲得相同的數據框(兩列 a 和 b),但基本統計數據為行。

有 dplyr 命令嗎?

以“長”格式獲取數據然后進行匯總可能會更好

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

我們可以使用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 

或者如果你不想要四分位數:

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

使用purrr::map可以實現tidyverse解決方案:

library(purrr)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM