I loved this %>% crosstable
[This article was first published on » R, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
This is a public tank you for @heatherturner’s contribution. Now the SciencesPo’s crosstable
can work in a chain (%>%) fashion; useful for using along with other packages that have integrated the magrittr operator.
> candidatos %>% + filter(desc_cargo == 'DEPUTADO ESTADUAL'| desc_cargo =='DEPUTADO DISTRITAL' | desc_cargo =='DEPUTADO FEDERAL' | desc_cargo =='VEREADOR' | desc_cargo =='SENADOR') %>% tab(desc_cargo,desc_sexo) ==================================================== desc_sexo ------------------------- desc_cargo NA FEMININO MASCULINO Total ---------------------------------------------------- DEPUTADO DISTRITAL 1 826 2457 3284 0.03% 25% 75% 100% DEPUTADO ESTADUAL 122 12595 48325 61042 0.20% 21% 79% 100% DEPUTADO FEDERAL 40 5006 20176 25222 0.16% 20% 80% 100% SENADOR 4 161 1002 1167 0.34% 14% 86% 100% VEREADOR 9682 376576 1162973 1549231 0.62% 24% 75% 100% ---------------------------------------------------- Total 9849 395164 1234933 1639946 0.60% 24% 75% 100% ==================================================== Chi-Square Test for Independence Number of cases in table: 1639946 Number of factors: 2 Test for independence of all factors: Chisq = 1077.4, df = 8, p-value = 2.956e-227 X^2 df P(> X^2) Likelihood Ratio 1216.0 8 0 Pearson 1077.4 8 0 Phi-Coefficient : 0.026 Contingency Coeff.: 0.026 Cramer's V : 0.018
# Reproducible example:
library(SciencesPo) gender = rep(c("female","male"),c(1835,2691)) admitted = rep(c("yes","no","yes","no"),c(557,1278,1198,1493)) dept = rep(c("A","B","C","D","E","F","A","B","C","D","E","F"), c(89,17,202,131,94,24,19,8,391,244,299,317)) dept2 = rep(c("A","B","C","D","E","F","A","B","C","D","E","F"), c(512,353,120,138,53,22,313,207,205,279,138,351)) department = c(dept,dept2) ucb = data.frame(gender,admitted,department) > ucb %>% tab(admitted, gender, department) ================================================================ department ----------------------------------------- admitted gender A B C D E F Total ---------------------------------------------------------------- no female 19 8 391 244 299 317 1278 1.5% 0.63% 31% 19% 23.4% 25% 100% male 313 207 205 279 138 351 1493 21.0% 13.86% 14% 19% 9.2% 24% 100% ------------------------------------------------------- Total 332 215 596 523 437 668 2771 12.0% 7.76% 22% 19% 15.8% 24% 100% ---------------------------------------------------------------- yes female 89 17 202 131 94 24 557 16% 3.1% 36% 24% 16.9% 4.3% 100% male 512 353 120 138 53 22 1198 43% 29.5% 10% 12% 4.4% 1.8% 100% ------------------------------------------------------- Total 601 370 322 269 147 46 1755 34% 21.1% 18% 15% 8.4% 2.6% 100% ---------------------------------------------------------------- Total female 108 25 593 375 393 341 1835 5.9% 1.4% 32% 20% 21.4% 19% 100% male 825 560 325 417 191 373 2691 30.7% 20.8% 12% 15% 7.1% 14% 100% ------------------------------------------------------- Total 933 585 918 792 584 714 4526 20.6% 12.9% 20% 17% 12.9% 16% 100% ================================================================
To leave a comment for the author, please follow the link and comment on their blog: » R.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.