Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


r:tidyverse:dplyr_count_tally

count, tally (dplyr)

Le seguenti funzioni di dplyr servono ad avere tabelle riassuntive e di frequenza di un dataframe.

  • count() produce le frequenze dei valori (equivale a group_by() + summarise(n = n())); add_count() aggiunge una colonna (equivale a group_by() + mutate(n = n()));
  • tally() equivale invece a summarise(n = n()); add_tally() aggiunge una colonna.

Tutte prevedono l'argomento wt, per indicare una vettori di pesi ed ottenere dunque delle frequenze ponderate.

# pacchetti e dati
library(tidyverse)

Frequenze

# distribuzione di frequenze
starwars %>% count(sex)
# A tibble: 5 x 2
  sex                n
  <chr>          <int>
1 female            16
2 hermaphroditic     1
3 male              60
4 none               6
5 NA                 4

df %>% tally() conta i casi:

# tally
starwars %>% tally()
# A tibble: 1 x 1
      n
  <int>
1    87

Distribuzione di due variabili

Quella che segue è una tabella di contingenza, in formato lungo:

starwars %>% count(sex, gender, sort = TRUE)
# A tibble: 6 x 3
  sex            gender        n
  <chr>          <chr>     <int>
1 male           masculine    60
2 female         feminine     16
3 none           masculine     5
4 NA             NA            4
5 hermaphroditic masculine     1
6 none           feminine      1

Con la funzione pivot_wider, passiamo dal formato lungo al formato largo (wide), ottenendo una tabella di contingenza:

starwars %>% count(sex, gender) %>% 
  # elimino gli NA
  drop_na() %>% 
  pivot_wider(names_from=gender, values_from = n)
# A tibble: 4 x 3
  sex            feminine masculine
  <chr>             <int>     <int>
1 female               16        NA
2 hermaphroditic       NA         1
3 male                 NA        60
4 none                  1         5

Equivale a

starwars %>% 
  # variabile di raggruppamento
  group_by(sex) %>% 
  count(gender) %>% drop_na() %>% 
  pivot_wider(names_from=gender, values_from = n)
# A tibble: 4 x 3
# Groups:   sex [4]
  sex            feminine masculine
  <chr>             <int>     <int>
1 female               16        NA
2 hermaphroditic       NA         1
3 male                 NA        60
4 none                  1         5

Vedi anche summarise (dplyr)

Domande? Scrivimi

Messenger Telegram Email
r/tidyverse/dplyr_count_tally.txt · Ultima modifica: 11/08/2025 14:40 da Agnese Vardanega