Für eine eine oder zwei Setvariablen

Eine Setvariable

Wichtig: Die zur Setvariable gehörenden Variablen müssen alle als Faktoren mit denselben Stufenbezeichnungen definiert sein.

Beispiel: Erstellen einer Häufigkeitstabelle für die Variable “Gründe für die Wahl der Psychologie als Studienfach” (Studiengründe). Es konnten maximal drei der zehn Auswahlantworten angekreuzt werden, d.h. zur Kodierung wurden drei Variablen benötigt (v1_l1, v1_l2, v1_l3). Diese Variablen müssen zu einer Setvariablen zusammengefasst werden, um pro Antwortkategorie zu bestimmen, wie häufig sie gewählt wurde. Aus diesen absoluten Häufigkeiten lassen sich auf zwei verschiedene Arten relative Häufigkeiten berechnen. Einerseits kann man die absoluten Häufigkeiten durch die Gesamtanzahl der angekreuzten Alternativantworten dividieren “Anteil an der Gesamtanzahl Antworten (497)”, andererseits kann man sie durch die Anzahl Fälle (Probanden) dividieren “Anteil an der Anzahl Fälle (189)”. In Klammern steht jeweils die Bezugsgrösse. Die Anzahl der Fälle entspricht der Anzahl Personen, die mindestens eine Antwortkategorie angekreuzt haben. Die Gesamtanzahl der angekreuzten Alternativantworten kann deutlich höher liegen. In unserem Beispiel kann sie maximal drei mal so gross wie die Fallzahl sein. Dies ist der Fall, wenn jeder Proband drei Alternativantworten ankreuzt.

Erforderliche Pakete laden

library(ggplot2)    # Grafik

Datensatz einlesen und Setvariable spezifizieren

# Dateneingabe
data <- read.table(file="https://mmi.psycho.unibas.ch/r-toolbox/data/Eingangsfragebogen11.txt", header=TRUE)

num.set <- 6:8                  # Spaltennummern der beteiligten Variablen eingegeben
Setvariable <- "Studiengründe"  # Name der Setvariable eingeben

Häufigkeitstabelle

# Variablen zu Matrix "komb.set" zusammenfassen und Stufen bestimmen "lev.set"
komb.set <- data[,num.set]
lev.set <- character()
for (i in 1:length(num.set)) {
komb.set[,i] <- as.factor(komb.set[,i])
lev.set <- c(lev.set, levels(komb.set[,i]))}
lev.set <- unique(lev.set) # Vektor mit allen Stufen
n.lev.set <- length(lev.set)
# "listwise" deletion
FW <- apply(komb.set, 1, function(x) sum(is.na(x))==length(num.set))
komb.set <- komb.set[FW!=1,]
# 0-1 Matrix generieren
set <- matrix(0, nrow=nrow(komb.set), ncol=n.lev.set)
for (i in 1:nrow(set))  set[i, lev.set %in% t(komb.set[i,])] <- 1
# Tabelle generieren 
abs.H <- apply(set, 2, sum)
tab <- data.frame(N=abs.H, rel.Antworten=abs.H/sum(abs.H), rel.Cases=abs.H/nrow(komb.set))
tab <- rbind(tab, apply(tab, 2, sum))
rownames(tab) <- c(lev.set, "Total")
colnames(tab) <- c("Anzahl Antworten", paste0("Anteil an der Gesamtanzahl Antworten (", sum(abs.H), ")"), paste0("Anteil an der Anzahl Fälle (",nrow(set), ")"))
data2 <- tab[-nrow(tab),]
data2[,Setvariable] <- rownames(data2)
list("Häufigkeitstabelle"=tab)
## $Häufigkeitstabelle
##                              Anzahl Antworten
## anstelle des Medizinstudiums               20
## berufliche Moeglichkeiten                  81
## Fach/Wissenschaft                          30
## Interesse am Menschen                     148
## Krankheitsbilder                           78
## persoenliche Interessen                    48
## psychosozialer Beruf                       41
## thematisches Interesse                     17
## Zweitausbildung                            24
## Empfehlung durch Andere                    10
## Total                                     497
##                              Anteil an der Gesamtanzahl Antworten (497)
## anstelle des Medizinstudiums                                 0.04024145
## berufliche Moeglichkeiten                                    0.16297787
## Fach/Wissenschaft                                            0.06036217
## Interesse am Menschen                                        0.29778672
## Krankheitsbilder                                             0.15694165
## persoenliche Interessen                                      0.09657948
## psychosozialer Beruf                                         0.08249497
## thematisches Interesse                                       0.03420523
## Zweitausbildung                                              0.04828974
## Empfehlung durch Andere                                      0.02012072
## Total                                                        1.00000000
##                              Anteil an der Anzahl Fälle (189)
## anstelle des Medizinstudiums                       0.10582011
## berufliche Moeglichkeiten                          0.42857143
## Fach/Wissenschaft                                  0.15873016
## Interesse am Menschen                              0.78306878
## Krankheitsbilder                                   0.41269841
## persoenliche Interessen                            0.25396825
## psychosozialer Beruf                               0.21693122
## thematisches Interesse                             0.08994709
## Zweitausbildung                                    0.12698413
## Empfehlung durch Andere                            0.05291005
## Total                                              2.62962963

Grafiken

# Absolute Antworthäufigkeiten (Typ=1)
# Auf die Antworten bezogene relative Häufigkeiten (Typ=2),
# Auf die Fälle bezogene relative Häufigkeiten pro Spalte (Typ=3)
Typ <- 2        # Typ angeben
Tabelle <- tab[-nrow(tab),]

# Balkendiagramm
library(ggplot2)
ggplot(Tabelle, aes(x=factor(rownames(Tabelle),levels=rownames(Tabelle)), y=Tabelle [,Typ])) + geom_bar(colour="black", position="dodge", stat="identity", fill="grey") + xlab(Setvariable) + ylab(names(Tabelle)[Typ]) + theme_bw() + theme(axis.text.x = element_text(angle=90, hjust=1)) 

# Horizontale Beschriftung: + theme(axis.text.x ... weglassen

# Liniendiagramm
ggplot(Tabelle, aes(x=factor(rownames(Tabelle),levels=rownames(Tabelle)), y=Tabelle [,Typ], group=1)) + geom_line(size=0.8) + geom_point(size=3) + geom_point(size=1, colour="white") + xlab(Setvariable) + ylab(names(Tabelle)[Typ]) + theme_bw() + ylim(0, NA) + theme(axis.text.x = element_text(angle=90, hjust=1))

# Horizontale Beschriftung: "+ theme(axis.text.x ..." weglassen

Zwei Setvariablen

Wichtig: Die zu einer Setvariable gehörenden Variablen müssen alle als Faktoren mit denselben Stufenbezeichnungen definiert sein.

Beispiel: Erstellen einer Kreuztabelle “Studiengründe x Basel als Studienort”. Bei jeder dieser beiden Fragen konnten die Probanden maximal drei Antwortalternativen ankreuzen, d.h. für die Kodierung brauchte es je drei Variablen. Um die Kreuztabelle zu erstellen, müssen die drei Variablen (v1_l1, v1_l2, v1_l3) zu der Setvariablen “Studiengründe” und die drei Variablen (v5_l1, v5_l2, v5_l3) zu der Setvariablen “Basel.als.Studienort” zusammengefasst werden. Die Kreuztabelle enthält für jede Kombination der Antwortalternativen der beiden Setvariablen die Wahlhäufigkeit: “Absolute Antworthäufigkeiten”. Aus dieser Tabelle lassen sich Tabellen mit zeilen- oder spaltenweisen relativen Häufigkeiten berechnen. Die zeilenweisen Häufigkeiten kann man entweder an der Anzahl Probanden relativieren, welche die Kategorie der entprechenden Zeile angekreuzt haben “(Häufigkeiten pro Zeilenkategorie)/(Anzahl Fälle pro Zeile)”, oder man kann sie an der Summe der Anzahl Antworten in der entsprechenden Zeile relativieren “(Häufigkeiten pro Zeilenkategorie)/(Anzahl Antworten pro Zeile)”. In den beiden Tabellen stehen die für die Relativierung verwendeten Bezugsrössen in der mit “Total” gekennzeichneten Spalte. Die Anzahl Probanden, welche die Kategorie der entprechenden Zeile angekreuzt haben, ist in der Regel kleiner als die Summe der Anzahl Antworten der entsprechenden Zeile. Wenn alle Probanden die entsprechende Zeilenkatogorie und drei der Spaltenkategorien angekreuzt haben, ist die Summe der Antworten dieser Zeile dreimal so gross wie die Anzahl Probanden. Auf analoge Weise lassen sich spaltenweise relative Häufigkeiten berechnen.
Eine der beteiligten Variablen kann eine Frage betreffen, bei der jeder Proband nur eine Alternativantwort ankreuzen durfte.

Erforderliche Pakete laden

library(ggplot2)    # Grafik

Datensatz einlesen und Setvariable spezifizieren

# Dateneingabe
data <- read.table(file="https://mmi.psycho.unibas.ch/r-toolbox/data/Eingangsfragebogen11.txt", header=TRUE)

num.set1 <- 6:8                           # Setvariable 1: Spaltennummern der beteiligten Variablen
num.set2 <- 14:16                         # Setvariable 2: Spaltennummern der beteiligten Variablen
Setvariable1 <- "Studiengründe"           # Name von Setvariable 1
Setvariable2 <- "Basel.als.Studienort"    # Name von Setvariable 2

Häufigkeitstabellen

# Häufigkeitstabellen
# Variablen zu Matrix zusammenfassen
komb.set1 <- data[,num.set1, drop=FALSE]
komb.set2 <- data[,num.set2, drop=FALSE]
lev.set1 <- character(); lev.set2 <- character()
for (i in 1:length(num.set1)) {
komb.set1[,i] <- as.factor(komb.set1[,i])
lev.set1 <- c(lev.set1, levels(komb.set1[,i]))}
for (i in 1:length(num.set2)) {
komb.set2[,i] <- as.factor(komb.set2[,i])
lev.set2 <- c(lev.set2, levels(komb.set2[,i]))}
lev.set1 <- unique(lev.set1) # Vektor mit allen Stufen
n.lev.set1 <- length(lev.set1)
lev.set2 <- unique(lev.set2) # Vektor mit allen Stufen
n.lev.set2 <- length(lev.set2)
# "listwise" deletion
FW <- apply(komb.set1, 1, function(x) sum(is.na(x))==length(num.set1)) + apply(komb.set2, 1, function(x) sum(is.na(x))==length(num.set2))
komb.set1 <- komb.set1[FW!=1,,drop=FALSE]
komb.set2 <- komb.set2[FW!=1,, drop=FALSE]
# Variablenset 1    
# 0-1 Matrix generieren
set1 <- matrix(0, nrow=nrow(komb.set1), ncol=n.lev.set1)
for (i in 1:nrow(set1))  set1[i, lev.set1 %in% t(komb.set1[i,])] <- 1
# Variablenset 2    
# 0-1 Matrix generieren
set2 <- matrix(0, nrow=nrow(komb.set2), ncol=n.lev.set2)
for (i in 1:nrow(set2))  set2[i, lev.set2 %in% t(komb.set2[i,])] <- 1
# Kreuztabelle mit absoluten Haeufigkeiten
abs.H <- t(set1) %*% set2
abs.H <- as.data.frame(abs.H)
abs.H$Total <- apply(abs.H, 1, sum)
abs.H <- rbind(abs.H, apply(abs.H, 2, sum))
rownames(abs.H) <- c(lev.set1, "Total")
colnames(abs.H) <- c(lev.set2, "Total")
# Relative Haeufigkeiten pro Spalte
# auf Cases bezogen
spaltensumme <- apply(set2, 2, sum)
rel.H1 <- abs.H[, -ncol(abs.H)]
for (i in 1:n.lev.set2) rel.H1[,i] <- rel.H1[,i]/spaltensumme[i]
rel.H1[n.lev.set1+1,] <-  spaltensumme
# auf Antworten bezogen
spaltensumme <- as.numeric(abs.H[n.lev.set1+1, -ncol(abs.H)])
rel.H2 <- abs.H[, -ncol(abs.H)]
for (i in 1:n.lev.set2) rel.H2[,i] <- rel.H2[,i]/spaltensumme[i]
rel.H2[n.lev.set1+1,] <-  spaltensumme
# Relative Haeufigkeiten pro Zeile
# auf Cases bezogen
zeilensumme <- apply(set1, 2, sum)
rel.H3 <- abs.H[-nrow(abs.H),]
for (i in 1:n.lev.set1) rel.H3[i,] <- rel.H3[i,]/zeilensumme[i]
rel.H3[,n.lev.set2+1] <-  zeilensumme
# auf Antworten bezogen
zeilensumme <- as.numeric(abs.H[-nrow(abs.H), n.lev.set2+1])
rel.H4 <- abs.H[-nrow(abs.H),]
for (i in 1:n.lev.set1) rel.H4[i,] <- rel.H4[i,]/zeilensumme[i]
rel.H4[,n.lev.set2+1] <-  zeilensumme
list("Absolute Antworthäufigkeiten"=abs.H, "(Häufigkeiten pro Spaltenkategorie)/(Anzahl Fälle pro Spalte)"=rel.H1, "(Häufigkeiten pro Spaltenkategorie)/(Anzahl Antworten pro Spalte)"=rel.H2, "(Häufigkeiten pro Zeilenkategorie)/(Anzahl Fälle pro Zeile)"=rel.H3, "(Häufigkeiten pro Zeilenkategorie)/(Anzahl Antworten pro Zeile)"=rel.H4)
## $`Absolute Antworthäufigkeiten`
##                              Anerkennung der Matura Basel als Stadt
## anstelle des Medizinstudiums                      0               5
## berufliche Moeglichkeiten                         1              34
## Fach/Wissenschaft                                 5               4
## Interesse am Menschen                             5              65
## Krankheitsbilder                                  2              37
## persoenliche Interessen                           1              19
## psychosozialer Beruf                              3              20
## thematisches Interesse                            0               9
## Zweitausbildung                                   2               7
## Empfehlung durch Andere                           0               6
## Total                                            19             206
##                              Info ueber Qualitaet keine speziellen Gruende
## anstelle des Medizinstudiums                    5                        3
## berufliche Moeglichkeiten                      18                       11
## Fach/Wissenschaft                               7                        4
## Interesse am Menschen                          34                       15
## Krankheitsbilder                               17                        8
## persoenliche Interessen                         5                        7
## psychosozialer Beruf                           17                        3
## thematisches Interesse                          6                        0
## Zweitausbildung                                 9                        1
## Empfehlung durch Andere                         4                        1
## Total                                         122                       53
##                              private/finanzielle Gruende Universitaet Basel
## anstelle des Medizinstudiums                          13                  1
## berufliche Moeglichkeiten                             45                 18
## Fach/Wissenschaft                                     13                  9
## Interesse am Menschen                                 83                 26
## Krankheitsbilder                                      50                 20
## persoenliche Interessen                               29                 17
## psychosozialer Beruf                                  19                  3
## thematisches Interesse                                10                  2
## Zweitausbildung                                        7                  5
## Empfehlung durch Andere                                4                  1
## Total                                                273                102
##                              Total
## anstelle des Medizinstudiums    27
## berufliche Moeglichkeiten      127
## Fach/Wissenschaft               42
## Interesse am Menschen          228
## Krankheitsbilder               134
## persoenliche Interessen         78
## psychosozialer Beruf            65
## thematisches Interesse          27
## Zweitausbildung                 31
## Empfehlung durch Andere         16
## Total                          775
## 
## $`(Häufigkeiten pro Spaltenkategorie)/(Anzahl Fälle pro Spalte)`
##                              Anerkennung der Matura Basel als Stadt
## anstelle des Medizinstudiums              0.0000000      0.06756757
## berufliche Moeglichkeiten                 0.1428571      0.45945946
## Fach/Wissenschaft                         0.7142857      0.05405405
## Interesse am Menschen                     0.7142857      0.87837838
## Krankheitsbilder                          0.2857143      0.50000000
## persoenliche Interessen                   0.1428571      0.25675676
## psychosozialer Beruf                      0.4285714      0.27027027
## thematisches Interesse                    0.0000000      0.12162162
## Zweitausbildung                           0.2857143      0.09459459
## Empfehlung durch Andere                   0.0000000      0.08108108
## Total                                     7.0000000     74.00000000
##                              Info ueber Qualitaet keine speziellen Gruende
## anstelle des Medizinstudiums           0.11111111                     0.15
## berufliche Moeglichkeiten              0.40000000                     0.55
## Fach/Wissenschaft                      0.15555556                     0.20
## Interesse am Menschen                  0.75555556                     0.75
## Krankheitsbilder                       0.37777778                     0.40
## persoenliche Interessen                0.11111111                     0.35
## psychosozialer Beruf                   0.37777778                     0.15
## thematisches Interesse                 0.13333333                     0.00
## Zweitausbildung                        0.20000000                     0.05
## Empfehlung durch Andere                0.08888889                     0.05
## Total                                 45.00000000                    20.00
##                              private/finanzielle Gruende Universitaet Basel
## anstelle des Medizinstudiums                  0.12500000         0.02777778
## berufliche Moeglichkeiten                     0.43269231         0.50000000
## Fach/Wissenschaft                             0.12500000         0.25000000
## Interesse am Menschen                         0.79807692         0.72222222
## Krankheitsbilder                              0.48076923         0.55555556
## persoenliche Interessen                       0.27884615         0.47222222
## psychosozialer Beruf                          0.18269231         0.08333333
## thematisches Interesse                        0.09615385         0.05555556
## Zweitausbildung                               0.06730769         0.13888889
## Empfehlung durch Andere                       0.03846154         0.02777778
## Total                                       104.00000000        36.00000000
## 
## $`(Häufigkeiten pro Spaltenkategorie)/(Anzahl Antworten pro Spalte)`
##                              Anerkennung der Matura Basel als Stadt
## anstelle des Medizinstudiums             0.00000000      0.02427184
## berufliche Moeglichkeiten                0.05263158      0.16504854
## Fach/Wissenschaft                        0.26315789      0.01941748
## Interesse am Menschen                    0.26315789      0.31553398
## Krankheitsbilder                         0.10526316      0.17961165
## persoenliche Interessen                  0.05263158      0.09223301
## psychosozialer Beruf                     0.15789474      0.09708738
## thematisches Interesse                   0.00000000      0.04368932
## Zweitausbildung                          0.10526316      0.03398058
## Empfehlung durch Andere                  0.00000000      0.02912621
## Total                                   19.00000000    206.00000000
##                              Info ueber Qualitaet keine speziellen Gruende
## anstelle des Medizinstudiums           0.04098361               0.05660377
## berufliche Moeglichkeiten              0.14754098               0.20754717
## Fach/Wissenschaft                      0.05737705               0.07547170
## Interesse am Menschen                  0.27868852               0.28301887
## Krankheitsbilder                       0.13934426               0.15094340
## persoenliche Interessen                0.04098361               0.13207547
## psychosozialer Beruf                   0.13934426               0.05660377
## thematisches Interesse                 0.04918033               0.00000000
## Zweitausbildung                        0.07377049               0.01886792
## Empfehlung durch Andere                0.03278689               0.01886792
## Total                                122.00000000              53.00000000
##                              private/finanzielle Gruende Universitaet Basel
## anstelle des Medizinstudiums                  0.04761905       9.803922e-03
## berufliche Moeglichkeiten                     0.16483516       1.764706e-01
## Fach/Wissenschaft                             0.04761905       8.823529e-02
## Interesse am Menschen                         0.30402930       2.549020e-01
## Krankheitsbilder                              0.18315018       1.960784e-01
## persoenliche Interessen                       0.10622711       1.666667e-01
## psychosozialer Beruf                          0.06959707       2.941176e-02
## thematisches Interesse                        0.03663004       1.960784e-02
## Zweitausbildung                               0.02564103       4.901961e-02
## Empfehlung durch Andere                       0.01465201       9.803922e-03
## Total                                       273.00000000       1.020000e+02
## 
## $`(Häufigkeiten pro Zeilenkategorie)/(Anzahl Fälle pro Zeile)`
##                              Anerkennung der Matura Basel als Stadt
## anstelle des Medizinstudiums             0.00000000       0.2500000
## berufliche Moeglichkeiten                0.01315789       0.4473684
## Fach/Wissenschaft                        0.19230769       0.1538462
## Interesse am Menschen                    0.03571429       0.4642857
## Krankheitsbilder                         0.02631579       0.4868421
## persoenliche Interessen                  0.02173913       0.4130435
## psychosozialer Beruf                     0.07894737       0.5263158
## thematisches Interesse                   0.00000000       0.6000000
## Zweitausbildung                          0.10000000       0.3500000
## Empfehlung durch Andere                  0.00000000       0.6000000
##                              Info ueber Qualitaet keine speziellen Gruende
## anstelle des Medizinstudiums            0.2500000               0.15000000
## berufliche Moeglichkeiten               0.2368421               0.14473684
## Fach/Wissenschaft                       0.2692308               0.15384615
## Interesse am Menschen                   0.2428571               0.10714286
## Krankheitsbilder                        0.2236842               0.10526316
## persoenliche Interessen                 0.1086957               0.15217391
## psychosozialer Beruf                    0.4473684               0.07894737
## thematisches Interesse                  0.4000000               0.00000000
## Zweitausbildung                         0.4500000               0.05000000
## Empfehlung durch Andere                 0.4000000               0.10000000
##                              private/finanzielle Gruende Universitaet Basel
## anstelle des Medizinstudiums                   0.6500000         0.05000000
## berufliche Moeglichkeiten                      0.5921053         0.23684211
## Fach/Wissenschaft                              0.5000000         0.34615385
## Interesse am Menschen                          0.5928571         0.18571429
## Krankheitsbilder                               0.6578947         0.26315789
## persoenliche Interessen                        0.6304348         0.36956522
## psychosozialer Beruf                           0.5000000         0.07894737
## thematisches Interesse                         0.6666667         0.13333333
## Zweitausbildung                                0.3500000         0.25000000
## Empfehlung durch Andere                        0.4000000         0.10000000
##                              Total
## anstelle des Medizinstudiums    20
## berufliche Moeglichkeiten       76
## Fach/Wissenschaft               26
## Interesse am Menschen          140
## Krankheitsbilder                76
## persoenliche Interessen         46
## psychosozialer Beruf            38
## thematisches Interesse          15
## Zweitausbildung                 20
## Empfehlung durch Andere         10
## 
## $`(Häufigkeiten pro Zeilenkategorie)/(Anzahl Antworten pro Zeile)`
##                              Anerkennung der Matura Basel als Stadt
## anstelle des Medizinstudiums            0.000000000       0.1851852
## berufliche Moeglichkeiten               0.007874016       0.2677165
## Fach/Wissenschaft                       0.119047619       0.0952381
## Interesse am Menschen                   0.021929825       0.2850877
## Krankheitsbilder                        0.014925373       0.2761194
## persoenliche Interessen                 0.012820513       0.2435897
## psychosozialer Beruf                    0.046153846       0.3076923
## thematisches Interesse                  0.000000000       0.3333333
## Zweitausbildung                         0.064516129       0.2258065
## Empfehlung durch Andere                 0.000000000       0.3750000
##                              Info ueber Qualitaet keine speziellen Gruende
## anstelle des Medizinstudiums           0.18518519               0.11111111
## berufliche Moeglichkeiten              0.14173228               0.08661417
## Fach/Wissenschaft                      0.16666667               0.09523810
## Interesse am Menschen                  0.14912281               0.06578947
## Krankheitsbilder                       0.12686567               0.05970149
## persoenliche Interessen                0.06410256               0.08974359
## psychosozialer Beruf                   0.26153846               0.04615385
## thematisches Interesse                 0.22222222               0.00000000
## Zweitausbildung                        0.29032258               0.03225806
## Empfehlung durch Andere                0.25000000               0.06250000
##                              private/finanzielle Gruende Universitaet Basel
## anstelle des Medizinstudiums                   0.4814815         0.03703704
## berufliche Moeglichkeiten                      0.3543307         0.14173228
## Fach/Wissenschaft                              0.3095238         0.21428571
## Interesse am Menschen                          0.3640351         0.11403509
## Krankheitsbilder                               0.3731343         0.14925373
## persoenliche Interessen                        0.3717949         0.21794872
## psychosozialer Beruf                           0.2923077         0.04615385
## thematisches Interesse                         0.3703704         0.07407407
## Zweitausbildung                                0.2258065         0.16129032
## Empfehlung durch Andere                        0.2500000         0.06250000
##                              Total
## anstelle des Medizinstudiums    27
## berufliche Moeglichkeiten      127
## Fach/Wissenschaft               42
## Interesse am Menschen          228
## Krankheitsbilder               134
## persoenliche Interessen         78
## psychosozialer Beruf            65
## thematisches Interesse          27
## Zweitausbildung                 31
## Empfehlung durch Andere         16

Grafiken

# Absolute Antworthäufigkeiten (Typ=1)
# (Häufigkeiten pro Spaltenkategorie)/(Anzahl Fälle pro Spalte) (Typ=2)
# (Häufigkeiten pro Spaltenkategorie)/(Anzahl Antworten pro Spalte) (Typ=3)
# (Häufigkeiten pro Zeilenkategorie)/(Anzahl Fälle pro Zeile) (Typ=4)
# (Häufigkeiten pro Zeilenkategorie)/(Anzahl Antworten pro Zeile) (Typ=5)
Typ <- 1    # Typ angeben

if (Typ==1) {
Tabelle <- abs.H[-nrow(abs.H),-ncol(abs.H)]
y.achse <- "absolute Häufigkeiten"
titel <- "Absolute Antworthäufigkeiten"
} else if (Typ==2) {
Tabelle <- rel.H1[-nrow(rel.H1),]
y.achse <- "relative Häufigkeiten"
titel <- "(Häufigkeiten pro Spaltenkategorie)/(Anzahl Fälle pro Spalte)"
} else if (Typ==3) {
Tabelle <- rel.H2[-nrow(rel.H2),]
y.achse <- "relative Häufigkeiten"
titel <- "(Häufigkeiten pro Spaltenkategorie)/(Anzahl Antworten pro Spalte)"
} else if (Typ==4) {
Tabelle <- rel.H3[,-ncol(rel.H3)]
y.achse <- "relative Häufigkeiten"
titel <- "(Häufigkeiten pro Zeilenkategorie)/(Anzahl Fälle pro Zeile)"
} else {
Tabelle <- rel.H4[,-ncol(rel.H4)]
y.achse <- "relative Häufigkeiten"
titel <- "(Häufigkeiten pro Zeilenkategorie)/(Anzahl Antworten pro Zeile)"}
data2 <- data.frame(as.table(as.matrix(Tabelle)))
names(data2)[1:2] <- c(Setvariable1,Setvariable2)
library(ggplot2)

# Balkendiagramm
# Schwarzweiss
ggplot(data=data2, aes_string(x=Setvariable1, y="Freq", fill=Setvariable2)) + geom_bar(colour="black", position="dodge", stat="identity") + scale_fill_grey(start=0, end=.9) + ylab(y.achse) + ggtitle(titel) + theme_bw() + theme(axis.text.x = element_text(angle=90, hjust=1), plot.title = element_text(size=11))

# Horizontale Beschriftung: "axis.text.x = element_text(angle=90, hjust=1)" weglassen

# Farbige Version
ggplot(data=data2, aes_string(x=Setvariable1, y="Freq", fill=Setvariable2)) + geom_bar(colour="black", position="dodge", stat="identity") + ylab(y.achse) + ggtitle(titel) + theme_grey() + theme(axis.text.x = element_text(angle=90, hjust=1), plot.title = element_text(size=11))

# Horizontale Beschriftung: "axis.text.x = element_text(angle=90, hjust=1)" weglassen

# Liniendiagramm
# Schwarzweiss
ggplot(data=data2, aes_string(x=Setvariable1, y="Freq", group=Setvariable2, shape=Setvariable2)) + geom_line(size=0.8) + geom_point(size=3) + ylab(y.achse) + ggtitle(titel) + theme_bw() + ylim(0, NA) + theme(axis.text.x = element_text(angle=90, hjust=1), plot.title = element_text(size=11))

# Horizontale Beschriftung: "+ theme(axis.text.x ..." weglassen

# Farbige Version
ggplot(data=data2, aes_string(x=Setvariable1, y="Freq", group=Setvariable2, colour=Setvariable2)) + geom_line(size=0.8) + ylab(y.achse) + ggtitle(titel) + theme_grey() + ylim(0, NA) + theme(axis.text.x = element_text(angle=90, hjust=1), plot.title = element_text(size=11))

# Horizontale Beschriftung: "axis.text.x = element_text(angle=90, hjust=1)" weglassen