簡體   English   中英

使用 dplyr 從匯總數據創建表

[英]Creating a table from summarized data using dplyr

我想使用 dplyr 從匯總數據創建匯總表。

library(dplyr)
mtcars %>% group_by(cyl, gear) %>% summarise(avg_wt = mean(wt))

這是 output:

# A tibble: 8 x 3
# Groups:   cyl [3]
    cyl  gear avg_wt
  <dbl> <dbl>  <dbl>
1     4     3   2.46
2     4     4   2.38
3     4     5   1.83
4     6     3   3.34
5     6     4   3.09
6     6     5   2.77
7     8     3   4.10
8     8     5   3.37

如何生成此 output?

列是 cyl,行是齒輪:

    4       6       8
3   2.46    3.34    4.10
4   2.38    3.09    NA
5   1.83    2.77    3.37
library(dplyr)
library(tidyr)
library(tibble)

mtcars %>%
  group_by(cyl, gear) %>%
  summarise(avg_wt = mean(wt)) %>% 
  pivot_wider(
    id_cols     = "gear",
    names_from  = "cyl",
    values_from = "avg_wt"
  ) %>% 
  column_to_rownames("gear")
#>          4       6        8
#> 3 2.465000 3.33750 4.104083
#> 4 2.378125 3.09375       NA
#> 5 1.826500 2.77000 3.370000

嘗試這個:

mytable <- mtcars %>% group_by(cyl, gear) %>% summarise(avg_wt = mean(wt))

tidyr::spread(mytable, cyl, avg_wt)

您應該得到以下信息:

   gear   `4`   `6`   `8`
  <dbl> <dbl> <dbl> <dbl>
1     3  2.46  3.34  4.10
2     4  2.38  3.09 NA   
3     5  1.83  2.77  3.37

希望這對您有所幫助。

暫無
暫無

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

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