Kapitel 5 Das Beispielprojekt: Froehlich et al. 2014 / Datenimport

5.1 Dateien

  • Artikel
  • Fragebogen
  • Daten (gekürzt auf n = 100)

Du kannst die Daten hier herunterladen.

5.2 Übersicht

Variablen im Datensatz:

##   [1] "ID"     "LASD1"  "LADP1"  "LADP2"  "LASD2"  "LADP3"  "LASR1"  "LADP4" 
##   [9] "LASR2"  "LADP5"  "LASR3"  "LASD3"  "LASR4"  "LASD4"  "LASD5"  "LASD6" 
##  [17] "LADP6"  "LASR5"  "LASD7"  "LASR6"  "LASD8"  "LADP7"  "LADP8"  "LASD9" 
##  [25] "LASR7"  "LASR8"  "LASR9"  "LASD10" "LADP9"  "LADP10" "LASR10" "WC1"   
##  [33] "WC2"    "WC3"    "WC4"    "WC5"    "WC6"    "WC7"    "LSLF1"  "LSIC1" 
##  [41] "LSIM1"  "LSIIB1" "LSLF2"  "LSMBA1" "LSIIA1" "LSCR1"  "LSIIA2" "LSIM2" 
##  [49] "LSIS1"  "LSCR2"  "LSMBA2" "LSMBA3" "LSIC2"  "LSLF3"  "LSIIA3" "LSIIB2"
##  [57] "LSIS2"  "LSMBA4" "LSMBP1" "LSIM3"  "LSIIA4" "LSIS3"  "LSIIB3" "LSIC3" 
##  [65] "LSIS4"  "LSIC4"  "LSCR3"  "LSMBP2" "LSMBP3" "LSCR4"  "LSIIB4" "LSIM4" 
##  [73] "LSLF4"  "LSMBP4" "LOPCD1" "LOPCD2" "LOSJP1" "LOSJP2" "LOPCD3" "LOSJP3"
##  [81] "LOSJP4" "LOSJP5" "LOCS1"  "LOCS2"  "LOCS3"  "LOCS4"  "LOOJP1" "LOOJP2"
##  [89] "LOOJP3" "LOOJP4" "DSEX"   "DAGE"   "DEDL"   "DEDP"   "DEXT"   "DEXP"  
##  [97] "DHIE"   "DFOR"   "DCON"   "DPRE"   "DBAN"

Fälle im Datensatz:

## [1] 100

5.3 Daten importieren

5.3.1 in R

Wir wollen den Beispieldatensatz (im .csv Format) laden. Dafür benutzen wir die Funktion read.csv2(). Um die weitere Arbeit zu erleichtern, weisen wir die Daten dem (neuen) Objekt “data” zu.

data <- read.csv2(file = "Data//Froehlich et al 2014 Daten 100.csv")

Wir können uns die Spalten (=Variablen), die jetzt in dem Objekt gespeichert sind, mit der Funktion names() anzeigen lassen.

names(data)
##   [1] "ID"     "LASD1"  "LADP1"  "LADP2"  "LASD2"  "LADP3"  "LASR1"  "LADP4" 
##   [9] "LASR2"  "LADP5"  "LASR3"  "LASD3"  "LASR4"  "LASD4"  "LASD5"  "LASD6" 
##  [17] "LADP6"  "LASR5"  "LASD7"  "LASR6"  "LASD8"  "LADP7"  "LADP8"  "LASD9" 
##  [25] "LASR7"  "LASR8"  "LASR9"  "LASD10" "LADP9"  "LADP10" "LASR10" "WC1"   
##  [33] "WC2"    "WC3"    "WC4"    "WC5"    "WC6"    "WC7"    "LSLF1"  "LSIC1" 
##  [41] "LSIM1"  "LSIIB1" "LSLF2"  "LSMBA1" "LSIIA1" "LSCR1"  "LSIIA2" "LSIM2" 
##  [49] "LSIS1"  "LSCR2"  "LSMBA2" "LSMBA3" "LSIC2"  "LSLF3"  "LSIIA3" "LSIIB2"
##  [57] "LSIS2"  "LSMBA4" "LSMBP1" "LSIM3"  "LSIIA4" "LSIS3"  "LSIIB3" "LSIC3" 
##  [65] "LSIS4"  "LSIC4"  "LSCR3"  "LSMBP2" "LSMBP3" "LSCR4"  "LSIIB4" "LSIM4" 
##  [73] "LSLF4"  "LSMBP4" "LOPCD1" "LOPCD2" "LOSJP1" "LOSJP2" "LOPCD3" "LOSJP3"
##  [81] "LOSJP4" "LOSJP5" "LOCS1"  "LOCS2"  "LOCS3"  "LOCS4"  "LOOJP1" "LOOJP2"
##  [89] "LOOJP3" "LOOJP4" "DSEX"   "DAGE"   "DEDL"   "DEDP"   "DEXT"   "DEXP"  
##  [97] "DHIE"   "DFOR"   "DCON"   "DPRE"   "DBAN"

Die Anzahl der Reihen bekommt man mit length(), das für alle Objekttypen die Länge angibt.

length(data)
## [1] 101

Es gibt verschiedene Objekttypen, die in R verwendet werden. Unsere Datensätze werden wir meistens in sogenannten data.frames speichern.

class(data)
## [1] "data.frame"

Wichtig sind noch Vektoren, die eine Menge an Zeichen enthalten können (die z.B. mit c() kombiniert werden). Es können Zahlen (“numeric”) und auch Text bzw. Zeichen (“character”) zusammen abgespeichert werden. Ausgegeben kann der Inhalt von Objekten einfach werden, indem der Objektname angegeben wird oder print() benutzt wird.

zahlen <- c(1, 2, 4)
length(zahlen)
## [1] 3
zahlen
## [1] 1 2 4
print(zahlen)
## [1] 1 2 4
class(zahlen)
## [1] "numeric"

Beachte was passiert, wenn wir einen “character string” hinzufügen.

zahlen <- c(zahlen, "fünf")
length(zahlen)
## [1] 4
zahlen
## [1] "1"    "2"    "4"    "fünf"
print(zahlen)
## [1] "1"    "2"    "4"    "fünf"
class(zahlen)
## [1] "character"

Wir können auch einzelne Inhalte des Vektors aufrufen, indem wir den Index des gewünschten Inhalts in [] nach dem Objektnamen angeben.

zahlen[3]
## [1] "4"

Natürlich lassen sich auch mehrere Punkte gleichzeitig ausgeben.

zahlen[2:4] #2 bis 4
## [1] "2"    "4"    "fünf"
zahlen[c(2, 4)] #2 und 4
## [1] "2"    "fünf"

Auch eine Negativauswahl ist möglich

## [1] "1"    "4"    "fünf"

Das funktioniert für alle Objekttypen mehr oder weniger gleich. Bei data.frames müssen wir nur sowohl die Reihe als auch die Spalte definieren.

## [1] 1
##   LASD1 LADP1 LADP2
## 1     2     4     4
## 2     1     1     1
## 3     1     4     4

Man könnte auch die Spaltennamen verwenden.

##   DSEX DHIE
## 1    1    2
## 2    1    3
## 3    2    2
## 4    1    2
## 5    2    2

Man kann auch auf die Ausprägungen filtern bzw. mehrere Selektionen aufeinander “stapeln”.

##    ID LASD1 LADP1 LADP2 LASD2 LADP3 LASR1 LADP4 LASR2 LADP5
## 31 31     3     5     4     3     3     5     2     3     5
## 32 32     2     2     1     2     3     1     5     2     2
## 33 33     1     5     5     1     3     4     3     3     4
## 34 34     2     5     4     2     3     5     3     4     5
## 35 35     1     5     5     2     4     3     3     4     5
## 36 36     2     5     4     3     5     5     2     4     4
## 37 37     3     4     3     3     3     4     2     3     4
## 38 38     2     4     4     1     3     5     1     4     5
## 39 39     3     3     4     2     2     4     2     4     5
## 42 42     3     2     3     2     5     2     2     5     4
## 87 87     2     3     4     2     3     3     3     4     4
## 88 88     3     5     5     2     4     2     3     3     2
## 89 89     2     3     3     2     4     3     4     4     3
## 90 90     3     3     4     2     2     4     1     4     4
## 91 91     2     3     4     2     3     5     3     4     4

Dateien in anderen Formaten können auch–ggf. durch den Einsatz von packages wie foreign–eingelesen werden.

5.3.2 in SPSS

TBA

5.4 Daten manipulieren

Wenn wir mit Daten arbeiten, brauchen wir einige Datenmanipulations-Vorgänge immer wieder. Zum Beispiel wollen wir einige items zu einer Skala zusammenfügen (bzw. den Mittelwert der items bilden).

5.4.1 Items umkodieren

  • “umgedrehte Items”: Bei Skalen werden oft einige Items umgekehrt erfragt. Die Items sollten aber vor der Analyse alle in die selbe Richtung gehen.
  • Beispiel 5-Punkt Likert Skala: 1->5, 2->4, 3->3, 4->2, 5->1

5.4.2 in R

# (Optionales) sortieren von "data" nach Variablennamen
data <- data[, order(names(data))]
names(data)
##   [1] "DAGE"   "DBAN"   "DCON"   "DEDL"   "DEDP"   "DEXP"   "DEXT"   "DFOR"  
##   [9] "DHIE"   "DPRE"   "DSEX"   "ID"     "LADP1"  "LADP10" "LADP2"  "LADP3" 
##  [17] "LADP4"  "LADP5"  "LADP6"  "LADP7"  "LADP8"  "LADP9"  "LASD1"  "LASD10"
##  [25] "LASD2"  "LASD3"  "LASD4"  "LASD5"  "LASD6"  "LASD7"  "LASD8"  "LASD9" 
##  [33] "LASR1"  "LASR10" "LASR2"  "LASR3"  "LASR4"  "LASR5"  "LASR6"  "LASR7" 
##  [41] "LASR8"  "LASR9"  "LOCS1"  "LOCS2"  "LOCS3"  "LOCS4"  "LOOJP1" "LOOJP2"
##  [49] "LOOJP3" "LOOJP4" "LOPCD1" "LOPCD2" "LOPCD3" "LOSJP1" "LOSJP2" "LOSJP3"
##  [57] "LOSJP4" "LOSJP5" "LSCR1"  "LSCR2"  "LSCR3"  "LSCR4"  "LSIC1"  "LSIC2" 
##  [65] "LSIC3"  "LSIC4"  "LSIIA1" "LSIIA2" "LSIIA3" "LSIIA4" "LSIIB1" "LSIIB2"
##  [73] "LSIIB3" "LSIIB4" "LSIM1"  "LSIM2"  "LSIM3"  "LSIM4"  "LSIS1"  "LSIS2" 
##  [81] "LSIS3"  "LSIS4"  "LSLF1"  "LSLF2"  "LSLF3"  "LSLF4"  "LSMBA1" "LSMBA2"
##  [89] "LSMBA3" "LSMBA4" "LSMBP1" "LSMBP2" "LSMBP3" "LSMBP4" "WC1"    "WC2"   
##  [97] "WC3"    "WC4"    "WC5"    "WC6"    "WC7"
# Selektion einer Skala
names(data[95:101])
## [1] "WC1" "WC2" "WC3" "WC4" "WC5" "WC6" "WC7"
# Speicherung des Reihen-Mittelwerts in einer neuen Variable
data$WC.mean <- rowMeans(data[95:101])
head(data$WC.mean) #zeige die ersten Einträge an (zur Kontrolle)
## [1] 3.3 3.0 3.9 3.4 3.1 3.6
hist(data$WC.mean) # Darstellung im Histogramm