# Datensatz 'data': pro Versuchsperson eine Zeile
# Häufigkeitstabellen zuerst umwandeln, vgl. Umwandlung von Datenstrukturen
Altersklasse <- rep(c("10-12","13-15","16-18","19-21"), c(122,140,115,123))
Deutungsart <- rep(rep(c("Mensch","Tier","Pflanze"), 4), c(12,80,30,20,70,50,35,50,30,40,55,28))
data <- data.frame(Altersklasse, Deutungsart)
# Variablen spezifizieren
Faktor1 <- "Altersklasse" # Bezeichnung des Faktors auf der Abszisse eingeben
Faktor2 <- "Deutungsart" # Bezeichnung des Faktors für die Balkenfarbe eingeben
Häufigkeitstabelle und Signifikanztest
# Häufigkeitstabelle
data2 <- na.omit(data[, c(Faktor1, Faktor2), drop=FALSE])
tab <- xtabs(paste("~", Faktor1, "+", Faktor2), data2)
# Zeilenweise relative Häufigkeiten
tab.rel.zeilen <- prop.table(tab, margin=1)
# Spaltenweise relative Häufigkeiten
tab.rel.spalten <- prop.table(tab, margin=2)
# Signifikantest
test <- chisq.test(tab)
# Für kleine Stichproben kann für Vierfeldertafeln der Fischer-Yates-Test als exakte Variante gerechnet werden.
# fisher.test(x=tab)
list(Häufigkeitstabelle=tab, "Zeilenweise relative Häufigkeiten"=tab.rel.zeilen, "Spaltenweise relative Häufigkeiten"=tab.rel.spalten, Signifikanztest=test)