Como criar script tabela dinâmica

Boa noite,
Alguém poderia me auxiliar no script para montar “tabela dinâmica” no R?

Eu tenho a seguinte tabela abaixo:
image

Gostaria de que a tabela ficasse organizada desta maneira, como uma tabela dinâmica:
Filtro: -
Coluna: Combustivel
Linha: Local e Parcela
Valores: Media(Peso_umido_final_Mg_ha)
Média (Peso_seco_final_Mg_ha)
Média(Umidade)

E utilizei o seguinte script:
dados_completos %>%
group_by(Local: Parcela, Combustivel) %>%
summarise(
medias_resultados = mean(Peso_umido_final_Mg_ha)
) %>%
pivot_wider(names_from = Combustivel, values_from = medias_resultados)

Peguei esse script aqui, mas não to sabendo organizar!

Desde já agradeço!

Olá @Mairoca, tudo bem?

Seria de grande ajuda se você puder fornecer um exemplo reprodutível. Dê uma olhada neste link para ajudar a montar um exemplo assim :slight_smile:

Usando a base dos diamantes, por exemplo, adaptando seu código deu certinho.

library(tidyverse)

diamonds %>% 
  group_by(cut, color, clarity) %>%
  summarise(
    medias_resultados = mean(carat),
    .groups = "drop"
  ) %>%
  pivot_wider(
    names_from = cut, 
    values_from = medias_resultados
  )
#> # A tibble: 56 x 7
#>    color clarity  Fair  Good `Very Good` Premium Ideal
#>    <ord> <ord>   <dbl> <dbl>       <dbl>   <dbl> <dbl>
#>  1 D     I1      1.88  1.04        0.95    1.16  0.96 
#>  2 D     SI2     1.02  0.858       0.932   0.919 0.750
#>  3 D     SI1     0.914 0.701       0.708   0.692 0.595
#>  4 D     VS2     0.844 0.702       0.634   0.585 0.499
#>  5 D     VS1     0.63  0.663       0.583   0.687 0.534
#>  6 D     VVS2    0.591 0.481       0.466   0.581 0.545
#>  7 D     VVS1    0.607 0.491       0.475   0.538 0.460
#>  8 D     IF      0.38  0.787       0.803   0.708 0.616
#>  9 E     I1      0.969 1.33        1.07    1.04  1.04 
#> 10 E     SI2     1.02  0.883       0.930   0.958 0.874
#> # … with 46 more rows

Created on 2021-04-11 by the reprex package (v2.0.0)

O único problema na sua sintaxe é que na função group_by() não é legal usar coisas como Local:Parcela, que é da sintaxe do select(). Se quiser usar, você precisa colocar dentro de um across(), por exemplo:

library(tidyverse)

diamonds %>% 
  # pega cut, color e clarity
  group_by(across(cut:clarity)) %>%
  summarise(
    medias_resultados = mean(carat),
    .groups = "drop"
  ) %>%
  pivot_wider(
    names_from = cut, 
    values_from = medias_resultados
  )
#> # A tibble: 56 x 7
#>    color clarity  Fair  Good `Very Good` Premium Ideal
#>    <ord> <ord>   <dbl> <dbl>       <dbl>   <dbl> <dbl>
#>  1 D     I1      1.88  1.04        0.95    1.16  0.96 
#>  2 D     SI2     1.02  0.858       0.932   0.919 0.750
#>  3 D     SI1     0.914 0.701       0.708   0.692 0.595
#>  4 D     VS2     0.844 0.702       0.634   0.585 0.499
#>  5 D     VS1     0.63  0.663       0.583   0.687 0.534
#>  6 D     VVS2    0.591 0.481       0.466   0.581 0.545
#>  7 D     VVS1    0.607 0.491       0.475   0.538 0.460
#>  8 D     IF      0.38  0.787       0.803   0.708 0.616
#>  9 E     I1      0.969 1.33        1.07    1.04  1.04 
#> 10 E     SI2     1.02  0.883       0.930   0.958 0.874
#> # … with 46 more rows

Created on 2021-04-11 by the reprex package (v2.0.0)