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 agroup_by()
+summarise(n = n())
);add_count()
aggiunge una colonna (equivale agroup_by()
+mutate(n = n())
);tally()
equivale invece asummarise(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)
r/tidyverse/dplyr_count_tally.txt · Ultima modifica: 11/08/2025 14:40 da Agnese Vardanega