簡體   English   中英

按因子級別的多個變量的特定摘要統計

[英]Specific Summary Statistics for Multiple Variables by Factor Level

我試圖獲取mpg,價格,重量和維修記錄的平均值,sd,最小值,最大值和范圍,該值由兩個變量級別(國內和國外)分組,稱為“外部”變量。 我遇到了許多示例,這些示例說明了如何獲取一個統計數據,例如多個變量的均值,或者如何獲取按兩個因子水平分組的一個變量的多個統計數據。 但是,對於開發上面已經介紹過的表,我還沒有發現任何特別有用的東西。

我嘗試了很多事情,看來ddply可能就是我應該使用的東西。 我認為應該是ddply(df,[column I want to use as factor level], mean=mean(value),...但是不確定語法。感謝您的幫助!

我希望使用tidyverse方法,例如:

library(tibble)
library(dplyr)

mtcars %>%
  rownames_to_column() %>%
  as_tibble() %>%
  group_by(rowname) %>%
  summarise_all(
    funs(mean = mean, median = median, min = min, max = max, sd = sd)
  )

# # A tibble: 32 x 56
#              rowname mpg_mean cyl_mean disp_mean hp_mean drat_mean wt_mean qsec_mean
#                <chr>    <dbl>    <dbl>     <dbl>   <dbl>     <dbl>   <dbl>     <dbl>
# 1        AMC Javelin     15.2        8     304.0     150      3.15   3.435     17.30
# 2 Cadillac Fleetwood     10.4        8     472.0     205      2.93   5.250     17.98
# 3         Camaro Z28     13.3        8     350.0     245      3.73   3.840     15.41
# 4  Chrysler Imperial     14.7        8     440.0     230      3.23   5.345     17.42
# 5         Datsun 710     22.8        4     108.0      93      3.85   2.320     18.61
# 6   Dodge Challenger     15.5        8     318.0     150      2.76   3.520     16.87
# 7         Duster 360     14.3        8     360.0     245      3.21   3.570     15.84
# 8       Ferrari Dino     19.7        6     145.0     175      3.62   2.770     15.50
# 9           Fiat 128     32.4        4      78.7      66      4.08   2.200     19.47
# 10         Fiat X1-9     27.3        4      79.0      66      4.08   1.935     18.90

...或使用summarise_ifis.numeric謂詞

library(dplyr)

starwars %>%
  group_by(homeworld) %>%
  summarise_if(
    is.numeric,
    funs(mean = mean, median = median, min = min, max = max, sd = sd)
  )

# # A tibble: 49 x 16
#        homeworld height_mean mass_mean birth_year_mean height_median mass_median birth_year_median height_min
#            <chr>       <dbl>     <dbl>           <dbl>         <dbl>       <dbl>             <dbl>      <dbl>
# 1       Alderaan    176.3333        NA              NA           188          NA                NA        150
# 2    Aleen Minor     79.0000      15.0              NA            79        15.0                NA         79
# 3         Bespin    175.0000      79.0              37           175        79.0                37        175
# 4     Bestine IV    180.0000     110.0              NA           180       110.0                NA        180
# 5 Cato Neimoidia    191.0000      90.0              NA           191        90.0                NA        191
# 6          Cerea    198.0000      82.0              92           198        82.0                92        198
# 7       Champala    196.0000        NA              NA           196          NA                NA        196
# 8      Chandrila    150.0000        NA              48           150          NA                48        150
# 9   Concord Dawn    183.0000      79.0              66           183        79.0                66        183
# 10      Corellia    175.0000      78.5              25           175        78.5                25        170

...您總是可以在必要時向函數添加參數,例如na.rm這樣的mean(., na.rm = TRUE)

暫無
暫無

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

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