https://r-graphics.org
Inspired by https://canvas.harvard.edu/courses/5749/assignments/syllabus (STAT E-100, Fall 2015)
> options(warn=-1) # warnings from `library` are annoying
> options(device="png") # instead of Rplots.pdf
> out <- capture.output(suppressMessages(library("mosaic")))
> # conduct analyses of Titanic data
> # frequency table of counts with marginal totals
> tally(~Survived, format = "count", data = Titanic, margins = TRUE)
No Yes Total
618 427 1045
> # bar graph of survival
> bargraph(~Survived, data = Titanic)
> # frequency table of propotions with marginal totals
> tally(~Survived, format = "proportion", data = Titanic, margins = TRUE)
No Yes Total
0.59 0.41 1.00
> # frequency table of percentages with marginal totals
> tally(~Survived, format = "percent", data = Titanic, margins = TRUE)
No Yes Total
59 41 100
> # pie chart of survival
> pie(tally(~Survived, format = "count", data = Titanic))
> # contingency table of counts
> tally(~Class + Survived, format = "count", margins=TRUE, data = Titanic)
Survived
Class No Yes Total
Lower 369 131 500
Middle 146 115 261
Upper 103 181 284
Total 618 427 1045
> # contingency table of proportions without conditioning
> tally(~Class + Survived, format = "proportion", margins=TRUE, data = Titanic)
Survived
Class No Yes Total
Lower 0.353 0.125 0.478
Middle 0.140 0.110 0.250
Upper 0.099 0.173 0.272
Total 0.591 0.409 1.000
> # contingency table of percentages without conditioning,
> tally(~Class + Survived, format = "percent", margins=TRUE, data = Titanic)
Survived
Class No Yes Total
Lower 35.3 12.5 47.8
Middle 14.0 11.0 25.0
Upper 9.9 17.3 27.2
Total 59.1 40.9 100.0
> # conditioning on survival
> # Of those who survived, what percentage were in the lower class? (31%)
> tally(~Class | Survived, format = "percent", data = Titanic, margins=TRUE)
Survived
Class No Yes
Lower 60 31
Middle 24 27
Upper 17 42
Total 100 100
> # conditioning on passenger class
> # Of those in the lower class, what percent survived? (26%)
> tally(~Survived | Class, format = "percent", data = Titanic, margins=TRUE)
Class
Survived Lower Middle Upper
No 74 56 36
Yes 26 44 64
Total 100 100 100
> # Dodged Bar Graph: Survival with Class Subgroups
> bargraph(~Survived, groups=Class, auto.key=TRUE, data=Titanic)
> # Dodged Bar Graph: Class with Survival Subgroups
> bargraph(~Class, groups=Survived, auto.key=TRUE, data=Titanic)
> # Stacked Bar Graph: Survival with Class Subgroups
> bargraph(~Survived, groups=Class, auto.key=TRUE, stack=TRUE, data=Titanic)
> # Stacked Bar Graph: Class with Survival Subgroups
> bargraph(~Class, groups=Survived, auto.key=TRUE, stack=TRUE, data=Titanic)
> # Unconditional Distribution of Survival and Conditional Distributions of Class
> mosaicplot(~Survived + Class, color=TRUE, data=Titanic)
> # Distributions of class conditional on survival
> tally(~Class | Survived, format = "percent", data = Titanic, margins=TRUE)
Survived
Class No Yes
Lower 60 31
Middle 24 27
Upper 17 42
Total 100 100
> # Unconditional Distribution of Class and Conditional Distributions of Survival
> mosaicplot(~Class + Survived, color=TRUE, data=Titanic)
> # Distributions of survival conditional on class
> tally(~Survived | Class, format = "percent", data = Titanic, margins=TRUE)
Class
Survived Lower Middle Upper
No 74 56 36
Yes 26 44 64
Total 100 100 100