{ "cells": [ { "cell_type": "markdown", "id": "descending-vacuum", "metadata": { "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "id": "impossible-patient", "metadata": {}, "source": [ "R ist eine Open Source Softwareumgebung und eine Programmiersprache für statistische Berechnungen und Graphiken, die für alle gängigen Betriebssysteme verfügbar ist. Sie wird u.a. auch mit der Anaconda-Distribution ausgeliefert, die Sie bereits aus früheren Modulen Ihres Studiums kennen.\n", "\n", "R verfügt über eine sehr aktive Community, die die Software ständig weiterentwickelt und durch frei verfügbare Bibliotheken in ihrer Funktionalität erweitert. Dadurch sind neue statistische Verfahren häufig wesentlich schneller verfügbar als in proprietärer Software.\n", "\n", "Im Kontext dieses Kurses arbeiten wir mit Jupyter Notebooks, da sich diese durch die Kombination von beschreibendem bzw. erläuternden Text und ausführbaren Codeblöcken besonders eignen. Für aufwendige Datenanalysen ist aber auch die integrierte Entwicklungsumgebung R Studio empfehlenswert, die es ermöglicht auch immer einen Blick auf die aktuell verwendeten Daten zu haben. Auch [R Studio](https://www.rstudio.com/products/rstudio/) ist Teil der Anaconda-Distribution, ein austesten ist also ohne großen Aufwand möglich.\n", "\n", "In diesem Jupyter Notebook erhalten Sie nun eine kurze Einführung in die Arbeit mit R, bevor wir dann in den nachfolgenden Jupyter Notebooks die Aufbereitung und Auswertung von Daten aus empirischen Erhebungen thematisieren." ] }, { "cell_type": "markdown", "id": "homeless-dominant", "metadata": {}, "source": [ "## R als Taschenrechner\n", "\n", "Wie Sie es auch von Python her kennen, können Sie in Codezeilen auch bei der Nutzung eines R-Kernels Rechenoperationen ausführen. Im Unterschied zur Arbeit mit Python sehen Sie für jede Operation, die einen Rückgabewert erzeugt, selbigen im Ausgabebereich unterhalb der Codezelle des Jupyter Notebooks." ] }, { "cell_type": "code", "execution_count": 1, "id": "e4a1d429", "metadata": {}, "outputs": [ { "data": { "text/html": [ "7" ], "text/latex": [ "7" ], "text/markdown": [ "7" ], "text/plain": [ "[1] 7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "3" ], "text/latex": [ "3" ], "text/markdown": [ "3" ], "text/plain": [ "[1] 3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "10" ], "text/latex": [ "10" ], "text/markdown": [ "10" ], "text/plain": [ "[1] 10" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "2.5" ], "text/latex": [ "2.5" ], "text/markdown": [ "2.5" ], "text/plain": [ "[1] 2.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "21" ], "text/latex": [ "21" ], "text/markdown": [ "21" ], "text/plain": [ "[1] 21" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "5+2 #Addition\n", "5-2 #Subtraktion\n", "5*2 #Multiplikation\n", "5/2 #Division\n", "(5+2)*(5-2) #Berechnungen mit Klammern" ] }, { "cell_type": "markdown", "id": "separated-majority", "metadata": {}, "source": [ "Komplexere Berechnungen, die nicht über die einfache Verknüpfung von Zahlenwerten und Rechenoperatoren zu realisieren sind, werden in Funktionen realisiert, in denen die Berechnungsroutine hinterlegt ist. Auch hier werden Sie viele Parallelen zu Python und anderen Programmiersprachen erkennen können. Der Aufruf von Funktionen erfolgt über den Funktionsnamen, der immer von runden Klammern gefolgt ist:\n", "\n", "```R\n", "funktionsname() #Aufruf der Funktion \"funktionsname\"\n", "```\n", "Innerhalb der Klammern können mit Hilfe von Übergabeparametern Werte an die Funktion übergeben werden. Darüber hinaus können auch Optionen, die von der Funktion bereitgestellt werden, ausgewählt werden. In unserem Kontext sind dies i.d.R. Angaben zur Berechnungsvariante oder dem Umgang mit bestimmten Werten.\n", "```R\n", "funktionsname(daten_fuer_die_berechnung, weitere_optionen)\n", "```\n", "Schauen wir uns ein Beispiel an: Die Funktion `log()` berechnet Logarithmus eines übergebenen Werts. Voreingestellt ist hier die Berechnung des natürlichen Logarithmus." ] }, { "cell_type": "code", "execution_count": 2, "id": "racial-julian", "metadata": {}, "outputs": [ { "data": { "text/html": [ "1.6094379124341" ], "text/latex": [ "1.6094379124341" ], "text/markdown": [ "1.6094379124341" ], "text/plain": [ "[1] 1.609438" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "log(5) #Berechnen des natürlichen Logarithmus der Zahl 5" ] }, { "cell_type": "markdown", "id": "hydraulic-perry", "metadata": {}, "source": [ "Soll der Logarithmus zu einer anderen Basis berechnet werden, ist eine entsprechende Angabe mittels des Übergabeparameters `base` möglich." ] }, { "cell_type": "code", "execution_count": 3, "id": "colonial-hollow", "metadata": {}, "outputs": [ { "data": { "text/html": [ "2.32192809488736" ], "text/latex": [ "2.32192809488736" ], "text/markdown": [ "2.32192809488736" ], "text/plain": [ "[1] 2.321928" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "log(5, base = 2)" ] }, { "cell_type": "markdown", "id": "critical-carol", "metadata": {}, "source": [ "## Verwenden der Hilfe\n", "Gerade zu Beginn wissen Sie nicht immer, welche Optionen eine Funktion bietet. Aber auch später, insbesondere bei der Arbeit mit neuen Bibliotheken, werden Sie die Funktionsweise und Einstellungsmöglichkeiten von Funktionen immer wieder nachschauen müssen. Die erste Anlaufstelle in diesem Zusammenhang ist die Dokumentation. Diese können Sie -- wie auch in Python -- recht einfach durch das Voranstellen eines `?` vor die jeweilige Funktion oder das Objekt erreichen. Sie müssen jedoch bei Funktionen die runden Klammern für den Funktionsaufruf weglassen.\n", "\n", "Neben einer Beschreibung der Funktion finden Sie auch Beispiele für die Nutzung der Funktion und natürlich Erläuterungen zu den möglichen Optionen, die Sie über die Übergabeparameter spezifizieren können." ] }, { "cell_type": "code", "execution_count": 4, "id": "deluxe-quarter", "metadata": {}, "outputs": [], "source": [ "?log #Aufruf der Hilfe für die Funktion log." ] }, { "cell_type": "markdown", "id": "vertical-midwest", "metadata": {}, "source": [ "**Aufgabe:**\n", "Rufen Sie die Hilfe zur Funktion `round` auf und finden Sie heraus, was diese Funktion tut. Was für Einstellungen können Sie mit Hilfe der Übergabeparameter vornehmen? Runden Sie das Ergebnis der Berechnung des natürlichen Logarithmus der Zahl 5 `log(5)` auf zwei Stellen nach dem Komma." ] }, { "cell_type": "code", "execution_count": 7, "id": "environmental-marketplace", "metadata": {}, "outputs": [], "source": [ "?round" ] }, { "cell_type": "markdown", "id": "paperback-school", "metadata": {}, "source": [ "## Variablen und Vektoren\n", "Bisher haben wir die Werte für die verschiedenen Anweisungen immer direkt eingegeben. Sie können sich vorstellen, dass dies im Kontext statistischer Auswertungen wenig praktikabel und zudem äußerst fehleranfällig ist. Die Daten werden daher in Variablen abgelegt bzw. mit diesen verknüpft. Sie können sich dieses Vorgehen ähnlich wie das Ablegen in einer beschrifteten Schublade vorstellen. Sie können diese bei Bedarf öffnen und an den dort abgelegten Inhalt gelangen. Auch dieses Vorgehen kennen Sie bereits aus der Arbeit mit Python. \n", "\n", "### Variablen anlegen\n", "\n", "Die Zuweisung von Werten zu Variablen kann in R über zwei verschiedene Notationen realisiert werden. Bereits bekannt dürfte Ihnen die Zuweisung mittels eines Gleichheitszeichens sein. Diese Art der Zuweisung wird bei der Zuweisung von Werten zu Übergabeparametern verwendet. Außerhalb des Kontextes von Übergabeparametern ist in R jedoch die Pfeilnotation üblicher: `variable <- wert`. In den meisten Fällen lässt sich jedoch auch das Gleichzeichen als Zuweisungsoperator verwenden. Nur in sehr wenigen Ausnahmefällen funktioniert dies nicht. Dies können wir an dieser Stelle aber getrost außer Acht lassen. \n", "\n", "Beachten Sie bitte, dass eine Zuweisung keine Rückgabe bzw. Ausgabe erzeugt, es also zunächst so aussieht, als ob nichts passieren würde. Wollen Sie die \"Schublade\" öffnen, sich also den mit einer Variablen verknüpften Inhalt ansehen. Erreichen Sie dies in R über den einfachen Variablenaufruf (Namen der Variablen in die Codezelle schreiben)." ] }, { "cell_type": "code", "execution_count": 8, "id": "actual-willow", "metadata": {}, "outputs": [], "source": [ "a = 5 #Zuweisung mit \"=\"\n", "b <- 2 #Zuweisung mit \"<-\"" ] }, { "cell_type": "code", "execution_count": 9, "id": "personal-salon", "metadata": {}, "outputs": [ { "data": { "text/html": [ "5" ], "text/latex": [ "5" ], "text/markdown": [ "5" ], "text/plain": [ "[1] 5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "2" ], "text/latex": [ "2" ], "text/markdown": [ "2" ], "text/plain": [ "[1] 2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "a #Rückgabe (hier auch Ausgabe bzw. Anzeige) des in der Variable a gespeicherten Werts\n", "b #Rückgabe der Variable b" ] }, { "cell_type": "markdown", "id": "collaborative-plane", "metadata": {}, "source": [ "### Vektoren anlegen\n", "Üblicher Weise arbeiten wir im Kontext statistischer Auswertungen nicht auf der Ebene einzelner Merkmalsausprägungen (=Werte). In R lassen sich mehrere Werte gleichen Datentyps in Vektoren ablegen. Das Zusammenfügen und ggf. in einen einheitlichen Datentyp umwandeln übernimmt die Funktion `c` (=combine). " ] }, { "cell_type": "code", "execution_count": 10, "id": "immune-houston", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 5
  2. \n", "\t
  3. 2
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 5\n", "\\item 2\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 5\n", "2. 2\n", "\n", "\n" ], "text/plain": [ "[1] 5 2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "v <- c(5,2) #Zuweisen mehrerer Werte als Vektor (c: combine)\n", "v #Aufruf der Variable 'v'" ] }, { "cell_type": "markdown", "id": "addressed-politics", "metadata": {}, "source": [ "Auch mit Vektoren können Sie Rechenoperationen durchführen. Dabei wird normalerweise die Berechnung separat für jeden einzelnen Wert im Vektor vorgenommen. Es gibt aber auch Operationen, die auf den Vektor als Ganzes angewendet werden (z.B. Berechnung des Skalarprodukts zweier Vektoren)." ] }, { "cell_type": "code", "execution_count": 11, "id": "worthy-lighter", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 10
  2. \n", "\t
  3. 7
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 10\n", "\\item 7\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 10\n", "2. 7\n", "\n", "\n" ], "text/plain": [ "[1] 10 7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 25
  2. \n", "\t
  3. 10
  4. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 25\n", "\\item 10\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 25\n", "2. 10\n", "\n", "\n" ], "text/plain": [ "[1] 25 10" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Addieren der einzelnen Werte im Vektor mit der Zahl 5\n", "v + 5 \n", "#Multiplizieren der einzelnen Werte im Vektor mit dem in 'a' abgespeicherten Wert.\n", "a * v " ] }, { "cell_type": "markdown", "id": "polyphonic-spice", "metadata": {}, "source": [ "Werden Rechenoperationen mit zwei Vektoren gleicher Länge durchgeführt, werden jeweils die Elemente an denselben Positionen im Vektor miteinander verrechnet." ] }, { "cell_type": "code", "execution_count": 12, "id": "vulnerable-graduate", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 20
  2. \n", "\t
  3. 60
  4. \n", "\t
  5. 120
  6. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 20\n", "\\item 60\n", "\\item 120\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 20\n", "2. 60\n", "3. 120\n", "\n", "\n" ], "text/plain": [ "[1] 20 60 120" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "c(2,3,4) * c(10,20,30)" ] }, { "cell_type": "markdown", "id": "continued-barrel", "metadata": {}, "source": [ "### Vektoren beschriften\n", "Die Werte in Vektoren lassen sich auch mit Bezeichnern versehen, also benennen. Dies stellt sicher, dass Sie bei Auswertungen den Überblick behalten, welche Werte sich bspw. auf welche Merkmalsausprägung beziehen." ] }, { "cell_type": "code", "execution_count": 13, "id": "civic-sensitivity", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\t
ja
\n", "\t\t
25
\n", "\t
nein
\n", "\t\t
25
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[ja] 25\n", "\\item[nein] 25\n", "\\end{description*}\n" ], "text/markdown": [ "ja\n", ": 25nein\n", ": 25\n", "\n" ], "text/plain": [ " ja nein \n", " 25 25 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Vektor mit Anzahl (absoluten Häufigkeiten) anlegen\n", "statistik_macht_spass <- c(25 ,25)\n", "\n", "#Beschriften der Elemente im Vektor \"statistik_macht_spass\"\n", "names(statistik_macht_spass) <- c(\"ja\", \"nein\")\n", "\n", "\n", "#Aufrufen/Ausgeben des beschrifteten Vektors\n", "statistik_macht_spass" ] }, { "cell_type": "code", "execution_count": 14, "id": "metropolitan-volume", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\t
ja
\n", "\t\t
0.5
\n", "\t
nein
\n", "\t\t
0.5
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[ja] 0.5\n", "\\item[nein] 0.5\n", "\\end{description*}\n" ], "text/markdown": [ "ja\n", ": 0.5nein\n", ": 0.5\n", "\n" ], "text/plain": [ " ja nein \n", " 0.5 0.5 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Beschriftungen werden weitergegeben an resultierende Vektoren weitergegeben\n", "#Hier berechnen wir den relativen Anteil (=relative Häufigkeiten)\n", "statistik_macht_spass/sum(statistik_macht_spass)" ] }, { "cell_type": "markdown", "id": "65bc5c54", "metadata": {}, "source": [ "**Aufgabe**\n", "Legen Sie einen beschrifteten Vektor für die Angaben zum Geschlecht in der nachfolgenden Tabelle an. Berechnen Sie den relativen Anteil.\n", "\n", "|weiblich|männlich|divers|\n", "|--------|--------|------|\n", "|214|247|39|" ] }, { "cell_type": "code", "execution_count": 18, "id": "cd53ced6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\t
femin.
\n", "\t\t
0.428
\n", "\t
masc.
\n", "\t\t
0.494
\n", "\t
divers
\n", "\t\t
0.078
\n", "
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[femin.] 0.428\n", "\\item[masc.] 0.494\n", "\\item[divers] 0.078\n", "\\end{description*}\n" ], "text/markdown": [ "femin.\n", ": 0.428masc.\n", ": 0.494divers\n", ": 0.078\n", "\n" ], "text/plain": [ "femin. masc. divers \n", " 0.428 0.494 0.078 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "anzahl_pro_geschlecht <- c(214, 247, 39)\n", "names(anzahl_pro_geschlecht) <- c(\"femin.\", \"masc.\", \"divers\")\n", "anzahl_pro_geschlecht / sum(anzahl_pro_geschlecht)" ] }, { "cell_type": "markdown", "id": "competent-swaziland", "metadata": {}, "source": [ "### Zugriff auf Vektorelemente\n", "\n", "Für das Erzeugen von numerischen Folgen in Form von Vektoren gibt es ein paar Shortcuts. Zum einen der `:`-Operator und zum anderen die Funktion `seq()`. Beide sind insbesondere bei der Erzeugung von IDs oder aber beim Zugriff auf Elemente in Vektoren hilfreich." ] }, { "cell_type": "code", "execution_count": 19, "id": "behavioral-airport", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 4
  8. \n", "\t
  9. 5
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 4\n", "\\item 5\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 2\n", "3. 3\n", "4. 4\n", "5. 5\n", "\n", "\n" ], "text/plain": [ "[1] 1 2 3 4 5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 4
  8. \n", "\t
  9. 5
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 4\n", "\\item 5\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 2\n", "3. 3\n", "4. 4\n", "5. 5\n", "\n", "\n" ], "text/plain": [ "[1] 1 2 3 4 5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Erzeugen von Vektoren mit den Zahlen von 1 bis 5 \n", "zahlen_von_eins_bis_fuenf <- 1:5; zahlen_von_eins_bis_fuenf\n", "#Alternativ mit seq\n", "seq(from = 1, to = 5, by = 1) #Hier können unterschiedliche Schrittweiten über den Parameter by angegeben werden" ] }, { "cell_type": "markdown", "id": "hundred-tennis", "metadata": {}, "source": [ "Natürlich können Sie auch auf einzelne Elemente in Vektoren zugreifen. Dies erfolgt über den Index der einzelnen Werte. Die Indizes in R beginnen jedoch im Gegensatz zu vielen anderen Programmiersprachen mit dem Wert 1 und nicht mit 0. Entsprechend hat das letzte Element in einem Vektor einen Indexwert, der identisch mit der Länge des Vektors ist. Analog zu vielen anderen Programmiersprachen werden die Indexwerte in eckigen Klammern im Anschluss an den Bezeichner angegeben." ] }, { "cell_type": "code", "execution_count": 20, "id": "offshore-november", "metadata": {}, "outputs": [ { "data": { "text/html": [ "1" ], "text/latex": [ "1" ], "text/markdown": [ "1" ], "text/plain": [ "[1] 1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "5" ], "text/latex": [ "5" ], "text/markdown": [ "5" ], "text/plain": [ "[1] 5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Zugriff auf das erste Element im Vektor\n", "zahlen_von_eins_bis_fuenf[1]\n", "\n", "#Zugriff auf das 5. (hier letzte) Element im Vektor\n", "zahlen_von_eins_bis_fuenf[5]" ] }, { "cell_type": "markdown", "id": "wicked-sheffield", "metadata": {}, "source": [ "Mit einem Vektor aus Indexwerten können Sie auch gleichzeitig auf mehrere Elemente zugreifen. In diesem Zusammenhang werden häufig die oben vorgestellten Shortcuts für das Erzeugen von Zahlenfolgen verwendet." ] }, { "cell_type": "code", "execution_count": 21, "id": "about-vermont", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 2
  2. \n", "\t
  3. 3
  4. \n", "\t
  5. 4
  6. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 2\n", "\\item 3\n", "\\item 4\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 2\n", "2. 3\n", "3. 4\n", "\n", "\n" ], "text/plain": [ "[1] 2 3 4" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 2
  2. \n", "\t
  3. 3
  4. \n", "\t
  5. 4
  6. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 2\n", "\\item 3\n", "\\item 4\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 2\n", "2. 3\n", "3. 4\n", "\n", "\n" ], "text/plain": [ "[1] 2 3 4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Zugriff auf die Elemente 2 bis 4\n", "zahlen_von_eins_bis_fuenf[c(2,3,4)]\n", "#kürzer\n", "zahlen_von_eins_bis_fuenf[2:4]" ] }, { "cell_type": "markdown", "id": "significant-times", "metadata": {}, "source": [ "Sie können die Werte an einzelnen Positionen im Vektor natürlich auch verändern. Dies erfolgt ebenfalls mittels einer Zuweisung. Neben der Neuzuweisung einzelner Werte zu einem einzelnen Vektorelement ist auch die gleichzeitige Neuzuweisung zu mehreren Vektorelementen möglich." ] }, { "cell_type": "code", "execution_count": 22, "id": "heavy-torture", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 5
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 4
  8. \n", "\t
  9. 5
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 5\n", "\\item 2\n", "\\item 3\n", "\\item 4\n", "\\item 5\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 5\n", "2. 2\n", "3. 3\n", "4. 4\n", "5. 5\n", "\n", "\n" ], "text/plain": [ "[1] 5 2 3 4 5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 5
  2. \n", "\t
  3. 4
  4. \n", "\t
  5. 4
  6. \n", "\t
  7. 4
  8. \n", "\t
  9. 5
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 5\n", "\\item 4\n", "\\item 4\n", "\\item 4\n", "\\item 5\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 5\n", "2. 4\n", "3. 4\n", "4. 4\n", "5. 5\n", "\n", "\n" ], "text/plain": [ "[1] 5 4 4 4 5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 5
  2. \n", "\t
  3. 4
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 2
  8. \n", "\t
  9. 5
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 5\n", "\\item 4\n", "\\item 3\n", "\\item 2\n", "\\item 5\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 5\n", "2. 4\n", "3. 3\n", "4. 2\n", "5. 5\n", "\n", "\n" ], "text/plain": [ "[1] 5 4 3 2 5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Zuweisung zu einem einzelnen Vektorelement\n", "zahlen_von_eins_bis_fuenf[1] <- 5; zahlen_von_eins_bis_fuenf\n", "\n", "#Zuweisung zu mehreren Vektorelementen. Allen wird derselbe Wert zugewiesen.\n", "zahlen_von_eins_bis_fuenf[2:4] <- 4; zahlen_von_eins_bis_fuenf\n", "\n", "#Zuweisung zu mehreren Vektorelementen. Jedes Vektorelement erhält einen anderen Wert. \n", "#Wichtig: Die Anzahl der Vektorelemente muss auf beiden Seiten identisch sein.\n", "zahlen_von_eins_bis_fuenf[2:4] <- c(4, 3, 2); zahlen_von_eins_bis_fuenf" ] }, { "cell_type": "markdown", "id": "a4152cc2", "metadata": {}, "source": [ "**Aufgabe**\n", "Legen Sie einen Vektor mit folgenden Werten an: 1, 3, 5, 7, 9. Ändern Sie anschließend die beiden letzten Werte, indem Sie diese mit den Werten 8 und 10 überschreiben." ] }, { "cell_type": "code", "execution_count": 26, "id": "e342058d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 3
  4. \n", "\t
  5. 5
  6. \n", "\t
  7. 7
  8. \n", "\t
  9. 9
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 3\n", "\\item 5\n", "\\item 7\n", "\\item 9\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 3\n", "3. 5\n", "4. 7\n", "5. 9\n", "\n", "\n" ], "text/plain": [ "[1] 1 3 5 7 9" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 3
  4. \n", "\t
  5. 5
  6. \n", "\t
  7. 8
  8. \n", "\t
  9. 10
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 3\n", "\\item 5\n", "\\item 8\n", "\\item 10\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 3\n", "3. 5\n", "4. 8\n", "5. 10\n", "\n", "\n" ], "text/plain": [ "[1] 1 3 5 8 10" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myVector <- seq(from = 1, to = 9, by = 2); myVector\n", "myVector[4:5] <- c(8, 10); myVector\n" ] }, { "cell_type": "markdown", "id": "critical-array", "metadata": {}, "source": [ "## Dataframe\n", "\n", "### Anlegen eines Dataframe\n", "\n", "Mehrere Vektoren lassen sich zu einem Dataframe zusammenfassen. Voraussetzung dafür ist, dass die Vektoren die gleiche Länge besitzen. Daten für statistische Auswertungen werden i.d.R. in diesem Datenformat gespeichert. Die Vektoren enthalten dabei die Werte einzelner Merkmale (=Variablen) und bilden die Spalten. In den Zeilen finden sich die Angaben, die sich auf ein Untersuchungsobjekt beziehen." ] }, { "cell_type": "code", "execution_count": 27, "id": "usual-equity", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
IDVorkenntnisseVorbereitung
1 ja 25
2 nein 32
3 nein 41
4 ja 29
5 keine Angabe47
\n" ], "text/latex": [ "\\begin{tabular}{r|lll}\n", " ID & Vorkenntnisse & Vorbereitung\\\\\n", "\\hline\n", "\t 1 & ja & 25 \\\\\n", "\t 2 & nein & 32 \\\\\n", "\t 3 & nein & 41 \\\\\n", "\t 4 & ja & 29 \\\\\n", "\t 5 & keine Angabe & 47 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| ID | Vorkenntnisse | Vorbereitung |\n", "|---|---|---|\n", "| 1 | ja | 25 |\n", "| 2 | nein | 32 |\n", "| 3 | nein | 41 |\n", "| 4 | ja | 29 |\n", "| 5 | keine Angabe | 47 |\n", "\n" ], "text/plain": [ " ID Vorkenntnisse Vorbereitung\n", "1 1 ja 25 \n", "2 2 nein 32 \n", "3 3 nein 41 \n", "4 4 ja 29 \n", "5 5 keine Angabe 47 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Anlegen eines Vektors für die ID\n", "id <- 1:5 \n", "\n", "#Anlegen eines Vektors für die Variable Vorkenntnisse\n", "vorkenntnisse <- c(\"ja\", \"nein\", \"nein\", \"ja\", \"keine Angabe\")\n", "\n", "#Anlegen eines Vektors für die Variable Anzahl Stunden zur Vorbereitung des Lernstoffs\n", "vorbereitung_in_stunden <- c(25, 32, 41, 29, 47)\n", "\n", "#Zusammenfassen in einem Dataframe\n", "#Die Angabe der Spaltennamen (ID, Vorkenntnisse, Vorbereitung) ist optional.\n", "#Über den Parameter stringsAsFactors kann angegeben werden, ob Zeichenketten als Faktoren (=kategoriale Variablen) behandelt werden sollen\n", "data_sample_1 <- data.frame(ID = id, Vorkenntnisse = vorkenntnisse, Vorbereitung = vorbereitung_in_stunden, stringsAsFactors = TRUE)\n", "data_sample_1" ] }, { "cell_type": "markdown", "id": "technological-characterization", "metadata": {}, "source": [ "Die Funktion `str()` liefert Angaben zur internen Struktur der übergebenen Variable. Für einen Dataframe wird neben den Datentypen einzelner Variablen auch die Anzahl der Beobachtungen (hier: `5 obs.`) und die Anzahl der Variablen angegeben. Für unsere kategoriale Variable `Vorkenntnisse` wurden drei sogenannte Levels (=Merkmalsausprägungen) angelegt. Jedem der Faktorlevel ist eine Zahl zugeordnet, die Werte werden also automatisch kodiert. Da R die Bedeutung der einzelnen Zeichenketten nicht kennt, erfolgt die Zuordnung alphabetisch: \"ja\" = 1, \"keine Angabe\" = 2, \"nein\" = 3. Diese Zuordnung ist nicht wirklich sinnvoll, wie wir dies ändern, werden wir aber zu einem späteren Zeitpunkt thematisieren." ] }, { "cell_type": "code", "execution_count": 28, "id": "still-fountain", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "'data.frame':\t5 obs. of 3 variables:\n", " $ ID : int 1 2 3 4 5\n", " $ Vorkenntnisse: Factor w/ 3 levels \"ja\",\"keine Angabe\",..: 1 3 3 1 2\n", " $ Vorbereitung : num 25 32 41 29 47\n" ] } ], "source": [ "#Zusammenfassung inkl. Kodierung der einzelnen Spalten\n", "str(data_sample_1)" ] }, { "cell_type": "markdown", "id": "c3c4278d", "metadata": {}, "source": [ "**Aufgabe:** \n", "Legen Sie einen Dataframe an, der die Daten der nachfolgenden Tabelle enthält und lassen Sie sich die interne Struktur ausgeben.\n", "\n", "|ID|Alter|Studiengang|\n", "|--|-----|-----------|\n", "|1 |23 |DDM |\n", "|2 |30 |IW |\n", "|3 |27 |DDM |\n", "|4 |32 |DDM |\n", "|5 |26 |IW |" ] }, { "cell_type": "code", "execution_count": 36, "id": "1f004b7e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 4
  8. \n", "\t
  9. 5
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 4\n", "\\item 5\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 2\n", "3. 3\n", "4. 4\n", "5. 5\n", "\n", "\n" ], "text/plain": [ "[1] 1 2 3 4 5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 23
  2. \n", "\t
  3. 30
  4. \n", "\t
  5. 27
  6. \n", "\t
  7. 32
  8. \n", "\t
  9. 26
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 23\n", "\\item 30\n", "\\item 27\n", "\\item 32\n", "\\item 26\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 23\n", "2. 30\n", "3. 27\n", "4. 32\n", "5. 26\n", "\n", "\n" ], "text/plain": [ "[1] 23 30 27 32 26" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 1
  2. \n", "\t
  3. 2
  4. \n", "\t
  5. 3
  6. \n", "\t
  7. 4
  8. \n", "\t
  9. 5
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 1\n", "\\item 2\n", "\\item 3\n", "\\item 4\n", "\\item 5\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 1\n", "2. 2\n", "3. 3\n", "4. 4\n", "5. 5\n", "\n", "\n" ], "text/plain": [ "[1] 1 2 3 4 5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. 'DDM'
  2. \n", "\t
  3. 'IW'
  4. \n", "\t
  5. 'DDM'
  6. \n", "\t
  7. 'IW'
  8. \n", "\t
  9. 'DDM'
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'DDM'\n", "\\item 'IW'\n", "\\item 'DDM'\n", "\\item 'IW'\n", "\\item 'DDM'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'DDM'\n", "2. 'IW'\n", "3. 'DDM'\n", "4. 'IW'\n", "5. 'DDM'\n", "\n", "\n" ], "text/plain": [ "[1] \"DDM\" \"IW\" \"DDM\" \"IW\" \"DDM\"" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "'data.frame':\t5 obs. of 3 variables:\n", " $ ID : int 1 2 3 4 5\n", " $ Alter : num 23 30 27 32 26\n", " $ Studiengang: Factor w/ 2 levels \"DDM\",\"IW\": 1 2 1 2 1\n" ] } ], "source": [ "id <- 1:5; id\n", "alter <- c(23,30,27,32,26); alter\n", "ddm <- \"DDM\"; iw = \"IW\"\n", "studiengang <- 1:5; studiengang\n", "studiengang[1:5] <- ddm\n", "studiengang[2] <- iw\n", "studiengang[4] <- iw\n", "studiengang\n", "myDataframe <- data.frame(ID = id, Alter = alter, Studiengang = studiengang, stringsAsFactors = TRUE)\n", "str(myDataframe)" ] }, { "cell_type": "markdown", "id": "owned-facial", "metadata": {}, "source": [ "### Zugriff auf DataFrame-Elemente\n", "Wie auch bei Vektoren kann auf einzelne Elemente in einem Dataframe über die zugehörigen Indexwerte zugegriffen werden. Bei einem Dataframe haben wir jedoch mit den Zeilen und Spalten zwei Dimensionen, die sich auch beim Zugriff widerspiegeln. In den eckigen Klammern können zwei Werte übergeben werden, der erste steht dabei für den Zeilenindex und der zweite für den Spaltenindex. Bleibt eine Indexpositionen leer, so wird die gesamte Zeile bzw. die gesamte Spalte ausgewählt.\n", "\n", "```R\n", "data_frame[zeile, spalte]\n", "```" ] }, { "cell_type": "code", "execution_count": 37, "id": "strong-knife", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "
IDVorkenntnisseVorbereitung
1 ja25
\n" ], "text/latex": [ "\\begin{tabular}{r|lll}\n", " ID & Vorkenntnisse & Vorbereitung\\\\\n", "\\hline\n", "\t 1 & ja & 25\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| ID | Vorkenntnisse | Vorbereitung |\n", "|---|---|---|\n", "| 1 | ja | 25 |\n", "\n" ], "text/plain": [ " ID Vorkenntnisse Vorbereitung\n", "1 1 ja 25 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
IDVorkenntnisseVorbereitung
22 nein32
33 nein41
44 ja 29
\n" ], "text/latex": [ "\\begin{tabular}{r|lll}\n", " & ID & Vorkenntnisse & Vorbereitung\\\\\n", "\\hline\n", "\t2 & 2 & nein & 32 \\\\\n", "\t3 & 3 & nein & 41 \\\\\n", "\t4 & 4 & ja & 29 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| | ID | Vorkenntnisse | Vorbereitung |\n", "|---|---|---|---|\n", "| 2 | 2 | nein | 32 |\n", "| 3 | 3 | nein | 41 |\n", "| 4 | 4 | ja | 29 |\n", "\n" ], "text/plain": [ " ID Vorkenntnisse Vorbereitung\n", "2 2 nein 32 \n", "3 3 nein 41 \n", "4 4 ja 29 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Auswahl von Zeilen (hier Zeile 1)\n", "data_sample_1[1,]\n", "\n", "#Auswahl von Zeilen (hier Zeilen 2 bis 4)\n", "data_sample_1[2:4,]" ] }, { "cell_type": "code", "execution_count": 38, "id": "finite-holder", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 25
  2. \n", "\t
  3. 32
  4. \n", "\t
  5. 41
  6. \n", "\t
  7. 29
  8. \n", "\t
  9. 47
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 25\n", "\\item 32\n", "\\item 41\n", "\\item 29\n", "\\item 47\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 25\n", "2. 32\n", "3. 41\n", "4. 29\n", "5. 47\n", "\n", "\n" ], "text/plain": [ "[1] 25 32 41 29 47" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
IDVorbereitung
1 25
2 32
3 41
4 29
5 47
\n" ], "text/latex": [ "\\begin{tabular}{r|ll}\n", " ID & Vorbereitung\\\\\n", "\\hline\n", "\t 1 & 25\\\\\n", "\t 2 & 32\\\\\n", "\t 3 & 41\\\\\n", "\t 4 & 29\\\\\n", "\t 5 & 47\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| ID | Vorbereitung |\n", "|---|---|\n", "| 1 | 25 |\n", "| 2 | 32 |\n", "| 3 | 41 |\n", "| 4 | 29 |\n", "| 5 | 47 |\n", "\n" ], "text/plain": [ " ID Vorbereitung\n", "1 1 25 \n", "2 2 32 \n", "3 3 41 \n", "4 4 29 \n", "5 5 47 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Auswahl von Spalten (hier Spalte 3)\n", "data_sample_1[,3]\n", "\n", "#Auswahl von Spalten (hier Spalten 1 und 3)\n", "data_sample_1[,c(1,3)]" ] }, { "cell_type": "code", "execution_count": 39, "id": "neutral-union", "metadata": {}, "outputs": [ { "data": { "text/html": [ "25" ], "text/latex": [ "25" ], "text/markdown": [ "25" ], "text/plain": [ "[1] 25" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "
IDVorbereitung
1 25
2 32
\n" ], "text/latex": [ "\\begin{tabular}{r|ll}\n", " ID & Vorbereitung\\\\\n", "\\hline\n", "\t 1 & 25\\\\\n", "\t 2 & 32\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| ID | Vorbereitung |\n", "|---|---|\n", "| 1 | 25 |\n", "| 2 | 32 |\n", "\n" ], "text/plain": [ " ID Vorbereitung\n", "1 1 25 \n", "2 2 32 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Auswahl einer Zelle (Zeile 1, Spalte 3)\n", "data_sample_1[1,3]\n", "\n", "#Auswahl mehrerer Zellen\n", "data_sample_1[1:2, c(1,3)]" ] }, { "cell_type": "markdown", "id": "significant-closer", "metadata": {}, "source": [ "Da im Kontext statistischer Auswertungen häufig der Zugriff auf Variablen notwendig ist und gerade bei Studien mit vielen Variablen das Verwenden von Indexwerten schnell zu Fehlern führen kann (z.B. durch falsches Auszählen der Indexposition einer Variablen), gibt es für den Zugriff auf Variablen noch weitere Alternativen: Zum einen kann der Variablenname über ein `$` an den Dataframe angehängt werden. Zum anderen kann der Variablenname als Zeichenkette in den eckigen Klammern verwendet werden. Diese Variante ist immer dann zu verwenden, wenn in den Spaltennamen Leerzeichen enthalten sind. Auch bietet diese Variante die Möglichkeit mehrere Variablen anhand ihres Names auszuwählen." ] }, { "cell_type": "code", "execution_count": 40, "id": "automotive-import", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. ja
  2. \n", "\t
  3. nein
  4. \n", "\t
  5. nein
  6. \n", "\t
  7. ja
  8. \n", "\t
  9. keine Angabe
  10. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. 'ja'
  2. \n", "\t\t
  3. 'keine Angabe'
  4. \n", "\t\t
  5. 'nein'
  6. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item ja\n", "\\item nein\n", "\\item nein\n", "\\item ja\n", "\\item keine Angabe\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item 'ja'\n", "\\item 'keine Angabe'\n", "\\item 'nein'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. ja\n", "2. nein\n", "3. nein\n", "4. ja\n", "5. keine Angabe\n", "\n", "\n", "\n", "**Levels**: 1. 'ja'\n", "2. 'keine Angabe'\n", "3. 'nein'\n", "\n", "\n" ], "text/plain": [ "[1] ja nein nein ja keine Angabe\n", "Levels: ja keine Angabe nein" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
IDVorkenntnisse
1 ja
2 nein
3 nein
4 ja
5 keine Angabe
\n" ], "text/latex": [ "\\begin{tabular}{r|ll}\n", " ID & Vorkenntnisse\\\\\n", "\\hline\n", "\t 1 & ja \\\\\n", "\t 2 & nein \\\\\n", "\t 3 & nein \\\\\n", "\t 4 & ja \\\\\n", "\t 5 & keine Angabe\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| ID | Vorkenntnisse |\n", "|---|---|\n", "| 1 | ja |\n", "| 2 | nein |\n", "| 3 | nein |\n", "| 4 | ja |\n", "| 5 | keine Angabe |\n", "\n" ], "text/plain": [ " ID Vorkenntnisse\n", "1 1 ja \n", "2 2 nein \n", "3 3 nein \n", "4 4 ja \n", "5 5 keine Angabe " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Alternative zur Auswahl von Spalten (Vorschläge und Autovervollständigung über \"Tab\")\n", "data_sample_1$Vorkenntnisse\n", "\n", "#Weitere Alternative zur Auswahl von Spalten, mit der Option mehrere Spalten gleichzeitig zu wählen\n", "data_sample_1[,c(\"ID\",\"Vorkenntnisse\")]" ] }, { "cell_type": "markdown", "id": "welcome-closing", "metadata": {}, "source": [ "Auch eine komplexere Auswahl von Elementen aus einem Dataframe ist möglich. Dies kommt z.B. zur Anwendung, wenn bestimmte Auswertungen nur mit einem Teil der Stichprobe erfolgen sollen. Dazu lassen sich mit booleschen Ausdrücken Bedingungen formulieren." ] }, { "cell_type": "code", "execution_count": 41, "id": "sonic-booth", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "
IDVorkenntnisseVorbereitung
11 ja25
44 ja29
\n" ], "text/latex": [ "\\begin{tabular}{r|lll}\n", " & ID & Vorkenntnisse & Vorbereitung\\\\\n", "\\hline\n", "\t1 & 1 & ja & 25\\\\\n", "\t4 & 4 & ja & 29\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| | ID | Vorkenntnisse | Vorbereitung |\n", "|---|---|---|---|\n", "| 1 | 1 | ja | 25 |\n", "| 4 | 4 | ja | 29 |\n", "\n" ], "text/plain": [ " ID Vorkenntnisse Vorbereitung\n", "1 1 ja 25 \n", "4 4 ja 29 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Auswahl aller Untersuchungsobjekte, bei denen für die Variable Vorkenntnisse der Wert \"ja\" hinterlegt ist.\n", "#(Beachten Sie das doppelte Gleichheitszeichen für die Prüfung auf Gleichheit im Gegensatz zur Zuweisung mit einem \n", "#einfachen Gleichheitszeichen)\n", "data_sample_1[data_sample_1$Vorkenntnisse == \"ja\",] #Spaltenindex leer: alle Spalten auswählen" ] }, { "cell_type": "code", "execution_count": 42, "id": "saving-budget", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. ja
  2. \n", "\t
  3. ja
  4. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. 'ja'
  2. \n", "\t\t
  3. 'keine Angabe'
  4. \n", "\t\t
  5. 'nein'
  6. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item ja\n", "\\item ja\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item 'ja'\n", "\\item 'keine Angabe'\n", "\\item 'nein'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. ja\n", "2. ja\n", "\n", "\n", "\n", "**Levels**: 1. 'ja'\n", "2. 'keine Angabe'\n", "3. 'nein'\n", "\n", "\n" ], "text/plain": [ "[1] ja ja\n", "Levels: ja keine Angabe nein" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Auswahl aller Werte der Variablen \"Vorkenntnisse\", die mehr als 30 Stunden Vorbereitungszeit angegeben haben.\n", "data_sample_1[data_sample_1$Vorbereitung < 30,\"Vorkenntnisse\"]" ] }, { "cell_type": "code", "execution_count": 43, "id": "ideal-magnet", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
IDVorkenntnisseVorbereitung
1 ja 25
2 nein32
3 nein41
4 ja 29
\n" ], "text/latex": [ "\\begin{tabular}{r|lll}\n", " ID & Vorkenntnisse & Vorbereitung\\\\\n", "\\hline\n", "\t 1 & ja & 25 \\\\\n", "\t 2 & nein & 32 \\\\\n", "\t 3 & nein & 41 \\\\\n", "\t 4 & ja & 29 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| ID | Vorkenntnisse | Vorbereitung |\n", "|---|---|---|\n", "| 1 | ja | 25 |\n", "| 2 | nein | 32 |\n", "| 3 | nein | 41 |\n", "| 4 | ja | 29 |\n", "\n" ], "text/plain": [ " ID Vorkenntnisse Vorbereitung\n", "1 1 ja 25 \n", "2 2 nein 32 \n", "3 3 nein 41 \n", "4 4 ja 29 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Verknüfung mehrerer Bedingungen (| steht für or)\n", "data_sample_1[data_sample_1$Vorkenntnisse == \"ja\" | data_sample_1$Vorkenntnisse == \"nein\",]" ] }, { "cell_type": "code", "execution_count": 44, "id": "cooked-typing", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\n", "
IDVorkenntnisseVorbereitung
1 ja25
\n" ], "text/latex": [ "\\begin{tabular}{r|lll}\n", " ID & Vorkenntnisse & Vorbereitung\\\\\n", "\\hline\n", "\t 1 & ja & 25\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| ID | Vorkenntnisse | Vorbereitung |\n", "|---|---|---|\n", "| 1 | ja | 25 |\n", "\n" ], "text/plain": [ " ID Vorkenntnisse Vorbereitung\n", "1 1 ja 25 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Verknüfung mehrerer Bedingungen (& steht für and)\n", "data_sample_1[data_sample_1$Vorkenntnisse == \"ja\" & data_sample_1$Vorbereitung <= 25,]" ] }, { "cell_type": "markdown", "id": "1a4eed2f", "metadata": {}, "source": [ "**Aufgabe:**\n", "Wählen Sie alle Studierenden aus dem Dataframe der vorhergehenden Aufgabe aus, die den Studiengang DDM studieren." ] }, { "cell_type": "code", "execution_count": 46, "id": "583af6b1", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
IDAlterStudiengang
11 23 DDM
33 27 DDM
55 26 DDM
\n" ], "text/latex": [ "\\begin{tabular}{r|lll}\n", " & ID & Alter & Studiengang\\\\\n", "\\hline\n", "\t1 & 1 & 23 & DDM\\\\\n", "\t3 & 3 & 27 & DDM\\\\\n", "\t5 & 5 & 26 & DDM\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| | ID | Alter | Studiengang |\n", "|---|---|---|---|\n", "| 1 | 1 | 23 | DDM |\n", "| 3 | 3 | 27 | DDM |\n", "| 5 | 5 | 26 | DDM |\n", "\n" ], "text/plain": [ " ID Alter Studiengang\n", "1 1 23 DDM \n", "3 3 27 DDM \n", "5 5 26 DDM " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myDataframe[myDataframe$Studiengang == ddm,]" ] }, { "cell_type": "markdown", "id": "respective-prisoner", "metadata": {}, "source": [ "## Faktoren\n", "Wie zuvor bereits erwähnt, steht für kategoriale Daten in R der Datentyp `Factor` zur Verfügung. Dieser kann unsortiert sein und so nominale Daten abbilden oder für die Arbeit mit ordinalskalierten Daten mit einer festen Ordnung versehen werden. Intern werden bei Faktoren numerische Werte gespeichert, die wie die Indizies stets bei 1 beginnen. Jedem Faktorlevel wird dabei ein Label zugeordnet. Für die Erzeugung oder Anpassung von Faktoren wird die Funktion `factor()` verwendet." ] }, { "cell_type": "code", "execution_count": 47, "id": "sharp-backup", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. ja
  2. \n", "\t
  3. nein
  4. \n", "\t
  5. ja
  6. \n", "\t
  7. ja
  8. \n", "\t
  9. nein
  10. \n", "\t
  11. ja
  12. \n", "\t
  13. jaja
  14. \n", "\t
  15. nein
  16. \n", "\t
  17. ja
  18. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. 'ja'
  2. \n", "\t\t
  3. 'jaja'
  4. \n", "\t\t
  5. 'nein'
  6. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item ja\n", "\\item nein\n", "\\item ja\n", "\\item ja\n", "\\item nein\n", "\\item ja\n", "\\item jaja\n", "\\item nein\n", "\\item ja\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item 'ja'\n", "\\item 'jaja'\n", "\\item 'nein'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. ja\n", "2. nein\n", "3. ja\n", "4. ja\n", "5. nein\n", "6. ja\n", "7. jaja\n", "8. nein\n", "9. ja\n", "\n", "\n", "\n", "**Levels**: 1. 'ja'\n", "2. 'jaja'\n", "3. 'nein'\n", "\n", "\n" ], "text/plain": [ "[1] ja nein ja ja nein ja jaja nein ja \n", "Levels: ja jaja nein" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Erzeugen eines Faktors basierend auf den vorkommenden Werten in einer Vektor mit Zeichenketten\n", "test_factor <- factor(c(\"ja\", \"nein\", \"ja\",\"ja\", \"nein\", \"ja\",\"jaja\", \"nein\", \"ja\"))\n", "test_factor" ] }, { "cell_type": "code", "execution_count": 48, "id": "premium-blood", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. ja
  2. \n", "\t
  3. nein
  4. \n", "\t
  5. ja
  6. \n", "\t
  7. ja
  8. \n", "\t
  9. nein
  10. \n", "\t
  11. ja
  12. \n", "\t
  13. <NA>
  14. \n", "\t
  15. nein
  16. \n", "\t
  17. ja
  18. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. 'ja'
  2. \n", "\t\t
  3. 'nein'
  4. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item ja\n", "\\item nein\n", "\\item ja\n", "\\item ja\n", "\\item nein\n", "\\item ja\n", "\\item \n", "\\item nein\n", "\\item ja\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item 'ja'\n", "\\item 'nein'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. ja\n", "2. nein\n", "3. ja\n", "4. ja\n", "5. nein\n", "6. ja\n", "7. <NA>\n", "8. nein\n", "9. ja\n", "\n", "\n", "\n", "**Levels**: 1. 'ja'\n", "2. 'nein'\n", "\n", "\n" ], "text/plain": [ "[1] ja nein ja ja nein ja nein ja \n", "Levels: ja nein" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Erzeugen eines Faktors basierend auf den vorkommenden Werten in einer Vektor mit Zeichenketten \n", "#mit Vorgabe der zuzuordnenden Label (nicht vorkommende Werte werden als fehlende Werte behandelt)\n", "test_factor <- factor(c(\"ja\", \"nein\", \"ja\",\"ja\", \"nein\", \"ja\",\"jaja\", \"nein\", \"ja\"), levels = c(\"ja\", \"nein\"))\n", "test_factor " ] }, { "cell_type": "code", "execution_count": 49, "id": "civil-director", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. ja
  2. \n", "\t
  3. nein
  4. \n", "\t
  5. ja
  6. \n", "\t
  7. ja
  8. \n", "\t
  9. nein
  10. \n", "\t
  11. ja
  12. \n", "\t
  13. ja
  14. \n", "\t
  15. nein
  16. \n", "\t
  17. ja
  18. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. 'ja'
  2. \n", "\t\t
  3. 'nein'
  4. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item ja\n", "\\item nein\n", "\\item ja\n", "\\item ja\n", "\\item nein\n", "\\item ja\n", "\\item ja\n", "\\item nein\n", "\\item ja\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item 'ja'\n", "\\item 'nein'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. ja\n", "2. nein\n", "3. ja\n", "4. ja\n", "5. nein\n", "6. ja\n", "7. ja\n", "8. nein\n", "9. ja\n", "\n", "\n", "\n", "**Levels**: 1. 'ja'\n", "2. 'nein'\n", "\n", "\n" ], "text/plain": [ "[1] ja nein ja ja nein ja ja nein ja \n", "Levels: ja nein" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Erzeugen eines Faktors basierend auf den vorkommenden Werten in einem Vektor mit Zeichenketten \n", "#mit Vorgabe der zuzuordnenden Label für jeden einzelnen Wert (hier: \"jaja\" wird zu \"ja\")\n", "test_factor <- factor(c(\"ja\", \"nein\", \"ja\", \"ja\", \"nein\", \"ja\", \"jaja\", \"nein\", \"ja\"), \n", " levels = c(\"ja\", \"nein\", \"jaja\"), #Vorkommende Level\n", " labels = c(\"ja\", \"nein\", \"ja\")) #Abzubilden auf folgende Label (hier Reduktion der Levels)\n", "test_factor " ] }, { "cell_type": "markdown", "id": "provincial-pizza", "metadata": {}, "source": [ "Wie wir gesehen haben, erfolgt die automatische Zuordnung der Faktorlevel alphabetisch. Häufig werden jedoch andere Zuordnungen gewünscht, um Ergebnisse intuitiver verständlich zu machen oder z.B. fehlende Werte, die in Textform hinterlegt sind (\"keine Angabe\"), ans Ende der Kodierungsliste zu setzen. Spätestens bei ordinalen Daten besteht jedoch die Notwendigkeit die Merkmalsausprägungen in die korrekte Rangfolge zu bringen." ] }, { "cell_type": "code", "execution_count": 50, "id": "scheduled-rehabilitation", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. 'extra large'
  2. \n", "\t
  3. 'extra small'
  4. \n", "\t
  5. 'large'
  6. \n", "\t
  7. 'medium'
  8. \n", "\t
  9. 'small'
  10. \n", "
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'extra large'\n", "\\item 'extra small'\n", "\\item 'large'\n", "\\item 'medium'\n", "\\item 'small'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'extra large'\n", "2. 'extra small'\n", "3. 'large'\n", "4. 'medium'\n", "5. 'small'\n", "\n", "\n" ], "text/plain": [ "[1] \"extra large\" \"extra small\" \"large\" \"medium\" \"small\" " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ordered_test_factor <- factor(c(\"extra small\", \"extra small\", \"small\", \"large\", \"small\", \"medium\", \"extra large\"))\n", "\n", "#Anzeige der angelegten Faktorlevel in der kodierten Reihenfolge: 'extra large' 'extra small' 'large' 'medium' 'small'\n", "levels(ordered_test_factor)" ] }, { "cell_type": "code", "execution_count": 51, "id": "looking-terminal", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. extra small
  2. \n", "\t
  3. extra small
  4. \n", "\t
  5. small
  6. \n", "\t
  7. large
  8. \n", "\t
  9. small
  10. \n", "\t
  11. medium
  12. \n", "\t
  13. extra large
  14. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. 'extra small'
  2. \n", "\t\t
  3. 'small'
  4. \n", "\t\t
  5. 'medium'
  6. \n", "\t\t
  7. 'large'
  8. \n", "\t\t
  9. 'extra large'
  10. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item extra small\n", "\\item extra small\n", "\\item small\n", "\\item large\n", "\\item small\n", "\\item medium\n", "\\item extra large\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item 'extra small'\n", "\\item 'small'\n", "\\item 'medium'\n", "\\item 'large'\n", "\\item 'extra large'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. extra small\n", "2. extra small\n", "3. small\n", "4. large\n", "5. small\n", "6. medium\n", "7. extra large\n", "\n", "\n", "\n", "**Levels**: 1. 'extra small'\n", "2. 'small'\n", "3. 'medium'\n", "4. 'large'\n", "5. 'extra large'\n", "\n", "\n" ], "text/plain": [ "[1] extra small extra small small large small medium \n", "[7] extra large\n", "Levels: extra small < small < medium < large < extra large" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Angabe der levels in der gewünschten Reihenfolge beim Anlegen des Faktors\n", "ordered_test_factor <- factor(c(\"extra small\", \"extra small\", \"small\", \"large\", \"small\", \"medium\", \"extra large\"),\n", " levels = c(\"extra small\", \"small\", \"medium\", \"large\", \"extra large\"), #gewünschte Reihenfolge\n", " ordered =TRUE) #geordnet = ordinal\n", "ordered_test_factor" ] }, { "cell_type": "code", "execution_count": 52, "id": "imperial-secondary", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. extra small
  2. \n", "\t
  3. extra small
  4. \n", "\t
  5. small
  6. \n", "\t
  7. large
  8. \n", "\t
  9. small
  10. \n", "\t
  11. medium
  12. \n", "\t
  13. extra large
  14. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. 'extra large'
  2. \n", "\t\t
  3. 'large'
  4. \n", "\t\t
  5. 'medium'
  6. \n", "\t\t
  7. 'small'
  8. \n", "\t\t
  9. 'extra small'
  10. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item extra small\n", "\\item extra small\n", "\\item small\n", "\\item large\n", "\\item small\n", "\\item medium\n", "\\item extra large\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item 'extra large'\n", "\\item 'large'\n", "\\item 'medium'\n", "\\item 'small'\n", "\\item 'extra small'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. extra small\n", "2. extra small\n", "3. small\n", "4. large\n", "5. small\n", "6. medium\n", "7. extra large\n", "\n", "\n", "\n", "**Levels**: 1. 'extra large'\n", "2. 'large'\n", "3. 'medium'\n", "4. 'small'\n", "5. 'extra small'\n", "\n", "\n" ], "text/plain": [ "[1] extra small extra small small large small medium \n", "[7] extra large\n", "Levels: extra large < large < medium < small < extra small" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    \n", "\t
  1. extra small
  2. \n", "\t
  3. extra small
  4. \n", "\t
  5. small
  6. \n", "\t
  7. large
  8. \n", "\t
  9. small
  10. \n", "\t
  11. medium
  12. \n", "\t
  13. extra large
  14. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. 'extra small'
  2. \n", "\t\t
  3. 'small'
  4. \n", "\t\t
  5. 'medium'
  6. \n", "\t\t
  7. 'large'
  8. \n", "\t\t
  9. 'extra large'
  10. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item extra small\n", "\\item extra small\n", "\\item small\n", "\\item large\n", "\\item small\n", "\\item medium\n", "\\item extra large\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item 'extra small'\n", "\\item 'small'\n", "\\item 'medium'\n", "\\item 'large'\n", "\\item 'extra large'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. extra small\n", "2. extra small\n", "3. small\n", "4. large\n", "5. small\n", "6. medium\n", "7. extra large\n", "\n", "\n", "\n", "**Levels**: 1. 'extra small'\n", "2. 'small'\n", "3. 'medium'\n", "4. 'large'\n", "5. 'extra large'\n", "\n", "\n" ], "text/plain": [ "[1] extra small extra small small large small medium \n", "[7] extra large\n", "Levels: extra small < small < medium < large < extra large" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Angabe der Levels nachträglich ändern\n", "ordered_test_factor <- factor(ordered_test_factor, levels = c(\"extra large\", \"large\", \"medium\", \"small\", \"extra small\"))\n", "ordered_test_factor\n", "\n", "#Einfacher geht das Umkehren der Reihenfolge noch mit rev (=reverse)\n", "ordered_test_factor <- factor(ordered_test_factor, levels = rev(levels(ordered_test_factor)))\n", "ordered_test_factor" ] }, { "cell_type": "code", "execution_count": 53, "id": "tired-portfolio", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
    \n", "\t
  1. extra small
  2. \n", "\t
  3. extra small
  4. \n", "\t
  5. small
  6. \n", "\t
  7. large
  8. \n", "\t
  9. small
  10. \n", "\t
  11. medium
  12. \n", "\t
  13. extra large
  14. \n", "
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t
    \n", "\t\t
  1. 'extra small'
  2. \n", "\t\t
  3. 'medium'
  4. \n", "\t\t
  5. 'extra large'
  6. \n", "\t\t
  7. 'small'
  8. \n", "\t\t
  9. 'large'
  10. \n", "\t
\n", "
" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item extra small\n", "\\item extra small\n", "\\item small\n", "\\item large\n", "\\item small\n", "\\item medium\n", "\\item extra large\n", "\\end{enumerate*}\n", "\n", "\\emph{Levels}: \\begin{enumerate*}\n", "\\item 'extra small'\n", "\\item 'medium'\n", "\\item 'extra large'\n", "\\item 'small'\n", "\\item 'large'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. extra small\n", "2. extra small\n", "3. small\n", "4. large\n", "5. small\n", "6. medium\n", "7. extra large\n", "\n", "\n", "\n", "**Levels**: 1. 'extra small'\n", "2. 'medium'\n", "3. 'extra large'\n", "4. 'small'\n", "5. 'large'\n", "\n", "\n" ], "text/plain": [ "[1] extra small extra small small large small medium \n", "[7] extra large\n", "Levels: extra small < medium < extra large < small < large" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Statt die Zeichenketten einzugeben, die durch Tippfehler schnell fehlende Werte verursachen können,\n", "#kann auch mit dem Index gearbeitet werden\n", "ordered_test_factor <- factor(ordered_test_factor, levels = levels(ordered_test_factor)[c(1,3,5,2,4)])\n", "ordered_test_factor" ] }, { "cell_type": "markdown", "id": "demanding-wallet", "metadata": {}, "source": [ "## Daten einlesen\n", "Üblicherweise werden die Daten nicht manuell in R angelegt, sondern liegen bereits in Dateien vor. Im Folgenden betrachten wir daher verschiedene Möglichkeiten, Daten aus verschiedenen gängigen Dateiformaten einzulesen.\n", "\n", "### csv-Dateien einlesen\n", "Beginnen wir mit dem Einlesen von csv-Dateien. Hier gilt im Vorfeld festzustellen, ob die Datei in einem deutschen csv-Format gespeichert wurde oder in dem üblicheren englischen Format. Das deutsche Format unterscheidet sich insofern vom englischen Format, dass eine deutsche csv-Datei keine kommaseparierte Datei im eigentlichen Sinn ist, da als Trennzeichen das Semikolon verwendet wird. Hintergrund ist die Verwendung des Kommas als Dezimaltrennzeichen." ] }, { "cell_type": "code", "execution_count": 54, "id": "amateur-exercise", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "'data.frame':\t500 obs. of 5 variables:\n", " $ ID : int 1 2 3 4 5 6 7 8 9 10 ...\n", " $ Wohnort : Factor w/ 7 levels \"Berlin\",\"Dallgow-Döberitz\",..: 5 5 5 5 1 1 5 1 5 1 ...\n", " $ Alter : int 1950 40 59 22 61 45 55 51 60 42 ...\n", " $ Bildungsabschluss: Factor w/ 9 levels \"Abitur\",\"Bachelor\",..: 5 3 9 2 5 9 3 4 4 5 ...\n", " $ Geschlecht : Factor w/ 3 levels \"d\",\"m\",\"w\": 2 2 2 3 3 3 2 2 2 2 ...\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
IDWohnortAlterBildungsabschlussGeschlecht
1 Potsdam 1950 kein Abschluss m
2 Potsdam 40 Hauptschulabschluss m
3 Potsdam 59 Realschulabschluss oder gleichwertigm
4 Potsdam 22 Bachelor w
5 Berlin 61 kein Abschluss w
6 Berlin 45 Realschulabschluss oder gleichwertigw
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", " ID & Wohnort & Alter & Bildungsabschluss & Geschlecht\\\\\n", "\\hline\n", "\t 1 & Potsdam & 1950 & kein Abschluss & m \\\\\n", "\t 2 & Potsdam & 40 & Hauptschulabschluss & m \\\\\n", "\t 3 & Potsdam & 59 & Realschulabschluss oder gleichwertig & m \\\\\n", "\t 4 & Potsdam & 22 & Bachelor & w \\\\\n", "\t 5 & Berlin & 61 & kein Abschluss & w \\\\\n", "\t 6 & Berlin & 45 & Realschulabschluss oder gleichwertig & w \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| ID | Wohnort | Alter | Bildungsabschluss | Geschlecht |\n", "|---|---|---|---|---|\n", "| 1 | Potsdam | 1950 | kein Abschluss | m |\n", "| 2 | Potsdam | 40 | Hauptschulabschluss | m |\n", "| 3 | Potsdam | 59 | Realschulabschluss oder gleichwertig | m |\n", "| 4 | Potsdam | 22 | Bachelor | w |\n", "| 5 | Berlin | 61 | kein Abschluss | w |\n", "| 6 | Berlin | 45 | Realschulabschluss oder gleichwertig | w |\n", "\n" ], "text/plain": [ " ID Wohnort Alter Bildungsabschluss Geschlecht\n", "1 1 Potsdam 1950 kein Abschluss m \n", "2 2 Potsdam 40 Hauptschulabschluss m \n", "3 3 Potsdam 59 Realschulabschluss oder gleichwertig m \n", "4 4 Potsdam 22 Bachelor w \n", "5 5 Berlin 61 kein Abschluss w \n", "6 6 Berlin 45 Realschulabschluss oder gleichwertig w " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#csv-Dateien einlesen, Zeichenketten als Faktoren (kategoriale Variablen) behandeln\n", "#Es wird automatisch angenommen, dass die erste Zeile die Spaltenköpfe enthält. Ist dies nicht \n", "#der Fall, muss dies über den Parameter header=FALSE entsprechend angegeben werden.\n", "sample_data <- read.csv(\"data/sample_data.csv\", stringsAsFactors = TRUE, fileEncoding=\"UTF8\")\n", "\n", "#Überprüfen, ob das Einlesen wie gewünscht funktioniert hat\n", "str(sample_data)\n", "\n", "#Die Funktion head liefert die ersten Zeilen zurück. Sie können natürlich auch den gesamten Dataframe aufrufen, \n", "#dann wird aber der vollständige Dateiinhalt unter der Codezelle angezeigt. Dies kann u.U. sehr lang sein.\n", "head(sample_data)" ] }, { "cell_type": "code", "execution_count": 55, "id": "figured-career", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "'data.frame':\t500 obs. of 5 variables:\n", " $ ID : int 1 2 3 4 5 6 7 8 9 10 ...\n", " $ Wohnort : Factor w/ 7 levels \"Berlin\",\"Dallgow-Döberitz\",..: 5 5 5 5 1 1 5 1 5 1 ...\n", " $ Alter : int 1950 40 59 22 61 45 55 51 60 42 ...\n", " $ Bildungsabschluss: Factor w/ 7 levels \"Abitur\",\"Bachelor\",..: 4 3 7 2 4 7 3 3 3 4 ...\n", " $ Geschlecht : Factor w/ 3 levels \"d\",\"m\",\"w\": 2 2 2 3 3 3 2 2 2 2 ...\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
IDWohnortAlterBildungsabschlussGeschlecht
1 Potsdam 1950 kein Abschluss m
2 Potsdam 40 Hauptschulabschluss m
3 Potsdam 59 Realschulabschluss oder gleichwertigm
4 Potsdam 22 Bachelor w
5 Berlin 61 kein Abschluss w
6 Berlin 45 Realschulabschluss oder gleichwertigw
\n" ], "text/latex": [ "\\begin{tabular}{r|lllll}\n", " ID & Wohnort & Alter & Bildungsabschluss & Geschlecht\\\\\n", "\\hline\n", "\t 1 & Potsdam & 1950 & kein Abschluss & m \\\\\n", "\t 2 & Potsdam & 40 & Hauptschulabschluss & m \\\\\n", "\t 3 & Potsdam & 59 & Realschulabschluss oder gleichwertig & m \\\\\n", "\t 4 & Potsdam & 22 & Bachelor & w \\\\\n", "\t 5 & Berlin & 61 & kein Abschluss & w \\\\\n", "\t 6 & Berlin & 45 & Realschulabschluss oder gleichwertig & w \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| ID | Wohnort | Alter | Bildungsabschluss | Geschlecht |\n", "|---|---|---|---|---|\n", "| 1 | Potsdam | 1950 | kein Abschluss | m |\n", "| 2 | Potsdam | 40 | Hauptschulabschluss | m |\n", "| 3 | Potsdam | 59 | Realschulabschluss oder gleichwertig | m |\n", "| 4 | Potsdam | 22 | Bachelor | w |\n", "| 5 | Berlin | 61 | kein Abschluss | w |\n", "| 6 | Berlin | 45 | Realschulabschluss oder gleichwertig | w |\n", "\n" ], "text/plain": [ " ID Wohnort Alter Bildungsabschluss Geschlecht\n", "1 1 Potsdam 1950 kein Abschluss m \n", "2 2 Potsdam 40 Hauptschulabschluss m \n", "3 3 Potsdam 59 Realschulabschluss oder gleichwertig m \n", "4 4 Potsdam 22 Bachelor w \n", "5 5 Berlin 61 kein Abschluss w \n", "6 6 Berlin 45 Realschulabschluss oder gleichwertig w " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#csv-Dateien (deutsches csv-Format) einlesen (csv2 statt csv)\n", "#Wer den Dateipfad nicht per Hand eingeben möchte, kann die Funktion file.choose() verwenden. \n", "#Hier öffnet sich ein Fenster für die Auswahl der Datei (Achtung: Funktioniert nicht zwingend bei allen Betriebssystemen)\n", "sample_data_german_format <- read.csv2(file.choose(), stringsAsFactors = TRUE, fileEncoding = \"UTF8\") #sample_data_german_format.csv\n", "\n", "#Überprüfen, ob das Einlesen wie gewünscht funktioniert hat\n", "str(sample_data_german_format)\n", "\n", "#Die Funktion head liefert die ersten Zeilen zurück. Sie können natürlich auch den gesamten Dataframe aufrufen, \n", "#dann wird aber der vollständige Dateiinhalt unter der Codezelle angezeigt. Dies kann u.U. sehr lang sein.\n", "head(sample_data_german_format)" ] }, { "cell_type": "markdown", "id": "generous-entry", "metadata": {}, "source": [ "**Aufgabe:**\n", "Wandeln Sie die Variable Bildungsabschluss in einen `ordered factor` um. Beachten Sie dabei auch die Reihenfolge der Faktorlevel. Selektieren Sie aus den zuvor eingelesenen Daten alle Spalten zu den Datensätzen der über 50-jährigen Männer und speichern Sie diese in einem neuen Dataframe ab. Wenn Sie 122 Einträge erhalten, dann haben Sie alles richtig gemacht." ] }, { "cell_type": "code", "execution_count": 74, "id": "functional-granny", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "'data.frame':\t122 obs. of 5 variables:\n", " $ ID : int 1 3 7 8 9 12 13 17 18 23 ...\n", " $ Wohnort : Factor w/ 7 levels \"Berlin\",\"Dallgow-Döberitz\",..: 5 5 5 1 5 1 5 1 5 1 ...\n", " $ Alter : int 1950 59 55 51 60 60 67 57 67 52 ...\n", " $ Bildungsabschluss: Factor w/ 7 levels \"Abitur\",\"Bachelor\",..: 4 7 3 3 3 5 4 7 4 2 ...\n", " $ Geschlecht : Factor w/ 3 levels \"d\",\"m\",\"w\": 2 2 2 2 2 2 2 2 2 2 ...\n" ] } ], "source": [ "#head(sample_data_german_format, n=30L) # Analyse der Datensätze 1 bis 30\n", "#sample_data_german_format[30:50,] # Analyse der Dattensaetze 30 bis 50\n", "bildungslevels = c(\"kein Abschluss\", \"Hauptschulabschluss\", \"Realschulabschluss oder gleichwertig\", \"Abitur\", \"Bachelor\", \"Master\", \"Promotion\")\n", "#bildungslevels # Anzeige\n", "### Versuch, die geordneten Bildungsabschlüsse zuzuordnen (funktioniert nicht!)\n", "#sample_data_german_format$Bildungsabschluss <- bildungslevels\n", "#\n", "sample_data_maenner_ueber50 <- sample_data_german_format[sample_data_german_format$Geschlecht == \"m\" & sample_data_german_format$Alter > 50, ]\n", "str(sample_data_maenner_ueber50) # Details anzeigen\n", "#sample_data_maenner_ueber50 #Anzeige aller Datensätze" ] }, { "cell_type": "markdown", "id": "determined-henry", "metadata": {}, "source": [ "### Einlesen von Dateien aus SPSS\n", "Daten aus sozialwissenschaftlicher Forschung liegen nicht selten als sav-Dateien vor. Diese stammen aus dem Statistikprogramm SPSS, welches ebenfalls weit verbreitet ist. Die benötigte Funktionalität zum Einlesen von SPSS-Dateien findet sich in der Bibliothek `haven`. Diese sollte bereits Teil Ihrer Installation sein, Sie muss daher lediglich geladen werden. Dies geschieht in R über die Funktion `library()`. Als Übergabeparameter wird der Name der zu ladenden Bibliothek wahlweise auch als Zeichenkette angegeben.\n", "\n", "Nachfolgend verwenden wir folgenden Forschungsdatensatz aus einer Studie zur Nutzung von Social Media und onlinebasierten Anwendungen in der Wissenschaft aus dem Jahr 2014 zu Demonstrationszwecken. Sie finden diesen im Forschungsdaten-Repository der Gesis, können aber auch jeden anderen Datensatz aus SPSS verwenden.\n", "\n", "Verwendeter Datensatz: [Pscheida, Daniela; Albrecht, Steffen; Herbst, Sabrina; Minet, Claudia; Köhler, Thomas; Leibniz-Forschungsverbund 2.0 (2015): Nutzung von Social Media und onlinebasierten Anwendungen in der Wissenschaft 2014. Unter Mitarbeit von Technische Universität Dresden Medienzentrum und GESIS](https://doi.org/10.4232/1.12262)." ] }, { "cell_type": "code", "execution_count": 75, "id": "identified-hearts", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "'data.frame':\t2083 obs. of 476 variables:\n", " $ za_nr : num 5972 5972 5972 5972 5972 ...\n", " ..- attr(*, \"label\")= chr \"ZA-Studiennummer\"\n", " ..- attr(*, \"format.spss\")= chr \"F4.0\"\n", " ..- attr(*, \"display_width\")= int 10\n", " $ version : chr \"1.0.0 (2015-11-06)\" \"1.0.0 (2015-11-06)\" \"1.0.0 (2015-11-06)\" \"1.0.0 (2015-11-06)\" ...\n", " ..- attr(*, \"label\")= chr \"GESIS Archiv Version\"\n", " ..- attr(*, \"format.spss\")= chr \"A25\"\n", " ..- attr(*, \"display_width\")= int 26\n", " $ doi : chr \"doi:10.4232/1.12262\" \"doi:10.4232/1.12262\" \"doi:10.4232/1.12262\" \"doi:10.4232/1.12262\" ...\n", " ..- attr(*, \"label\")= chr \"Digital Object Identifier\"\n", " ..- attr(*, \"format.spss\")= chr \"A25\"\n", " ..- attr(*, \"display_width\")= int 26\n", " $ lfdn : num 41 44 46 48 77 87 88 89 90 91 ...\n", " ..- attr(*, \"label\")= chr \"number\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " $ v_1054 : 'haven_labelled' num 2 6 6 6 2 6 3 6 3 7 ...\n", " ..- attr(*, \"label\")= chr \"Akademischer Abschluss (Art)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"display_width\")= int 3\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7 8\n", " .. ..- attr(*, \"names\")= chr \"Bachelor (Uni/FH)\" \"Master (Uni/FH)\" \"Diplom (Uni/FH)\" \"Staatsexamen\" ...\n", " $ v_1055 : chr \"-99\" \"-99\" \"-99\" \"-99\" ...\n", " ..- attr(*, \"label\")= chr \"Sonstiges, und zwar:\"\n", " ..- attr(*, \"format.spss\")= chr \"A254\"\n", " ..- attr(*, \"display_width\")= int 4\n", " $ v_1056 : 'haven_labelled' num 7 7 5 7 9 9 3 7 3 7 ...\n", " ..- attr(*, \"label\")= chr \"Funktion\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"display_width\")= int 4\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7 8 9 11 ...\n", " .. ..- attr(*, \"names\")= chr \"Akademischer Rat\" \"Doktorand/in\" \"Doktorand/in und gleichzeitig wissenschaftliche/r Mitarbeiter/in\" \"Postdoktorand/in\" ...\n", " $ v_1068 : chr \"-99\" \"-99\" \"-99\" \"-99\" ...\n", " ..- attr(*, \"label\")= chr \"Sonstiges, und zwar:\"\n", " ..- attr(*, \"format.spss\")= chr \"A254\"\n", " ..- attr(*, \"display_width\")= int 5\n", " $ v_73 : 'haven_labelled' num 13 9 13 13 15 3 7 13 15 3 ...\n", " ..- attr(*, \"label\")= chr \"Fach\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"display_width\")= int 13\n", " ..- attr(*, \"labels\")= Named num 1 3 4 5 6 7 8 9 10 11 ...\n", " .. ..- attr(*, \"names\")= chr \"Agrar-, Forst- und Ernährungswissenschaften\" \"Humanmedizin/ Gesundheitswissenschaften\" \"Ingenieurwissenschaften\" \"Sprachwissenschaften\" ...\n", " $ v_1070 : chr \"-99\" \"-99\" \"-99\" \"-99\" ...\n", " ..- attr(*, \"label\")= chr \"Anderes Fach, und zwar\"\n", " ..- attr(*, \"format.spss\")= chr \"A254\"\n", " ..- attr(*, \"display_width\")= int 9\n", " $ v_1071 : 'haven_labelled' num 123 170 123 134 306 10 117 134 77 32 ...\n", " ..- attr(*, \"label\")= chr \"Fach in Fächergruppe\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"display_width\")= int 12\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7 8 9 10 ...\n", " .. ..- attr(*, \"names\")= chr \"Agrarbiologie\" \"Agrarökonomie\" \"Agrarwissenschaft/Landwirtschaft\" \"Brauwesen/Getränketechnologie\" ...\n", " $ v_1116 : chr \"Brand Management\" \"-99\" \"-99\" \"-99\" ...\n", " ..- attr(*, \"label\")= chr \"Sonstiges Fachbereich\"\n", " ..- attr(*, \"format.spss\")= chr \"A47\"\n", " ..- attr(*, \"display_width\")= int 29\n", " $ v_1106 : 'haven_labelled' num 0 1 0 0 1 1 1 0 1 1 ...\n", " ..- attr(*, \"label\")= chr \"Universität oder andere Hochschule mit Promotionsrecht\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_1107 : 'haven_labelled' num 1 0 1 1 0 0 0 1 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Fachhochschule oder andere Hochschule ohne Promotionsrecht\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_1108 : 'haven_labelled' num 0 0 0 0 0 0 0 0 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Kunst- oder Musikhochschule\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5607 : 'haven_labelled' num 0 0 0 0 0 0 0 0 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Außeruniversitäres Forschungsinstitut (z.B. Leibniz, Helmholtz, Fraunhofer, Max Planck)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_1113 : 'haven_labelled' num 0 0 0 0 0 0 0 0 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Sonstige, und zwar:\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_1114 : chr \"-99\" \"-99\" \"-99\" \"-99\" ...\n", " ..- attr(*, \"label\")= chr \"Sonstige, und zwar:\"\n", " ..- attr(*, \"format.spss\")= chr \"A254\"\n", " ..- attr(*, \"display_width\")= int 14\n", " $ v_1115 : chr \"4\" \"42\" \"-9\" \"20\" ...\n", " ..- attr(*, \"label\")= chr \"Beschäftigung\"\n", " ..- attr(*, \"format.spss\")= chr \"A2\"\n", " ..- attr(*, \"display_width\")= int 7\n", " $ v_641 : 'haven_labelled' num 9 8 8 8 4 1 1 11 1 1 ...\n", " ..- attr(*, \"label\")= chr \"Kontrollfrage Bundesland\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1 2 3 4 5 6 7 8 9 ...\n", " .. ..- attr(*, \"names\")= chr \"keine Angabe\" \"Sachsen\" \"Sachsen Anhalt\" \"Thüringen\" ...\n", " $ v_4996 : 'haven_labelled' num 1 1 0 1 1 1 1 1 1 1 ...\n", " ..- attr(*, \"label\")= chr \"Forschung%s%\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_4997 : 'haven_labelled' num 15 30 0 5 70 5 90 2 40 50 ...\n", " ..- attr(*, \"label\")= chr \"Forschung%s%\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0\n", " .. ..- attr(*, \"names\")= chr \"\"\n", " $ v_5003 : 'haven_labelled' num 1 1 1 1 0 1 1 1 1 1 ...\n", " ..- attr(*, \"label\")= chr \"Lehre (inklusive Organisation v. Lehre, Beratung v. Studierenden)%s%\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5004 : 'haven_labelled' num 60 40 100 90 0 60 10 15 40 40 ...\n", " ..- attr(*, \"label\")= chr \"Lehre (inklusive Organisation v. Lehre, Beratung v. Studierenden)%s%\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0\n", " .. ..- attr(*, \"names\")= chr \"\"\n", " $ v_5005 : 'haven_labelled' num 1 1 0 0 1 0 0 1 1 1 ...\n", " ..- attr(*, \"label\")= chr \"Wissenschaftsadministration (z.B. Drittmitteleinwerbung, Projektverwaltung)%s%\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5006 : 'haven_labelled' num 25 20 0 0 10 0 0 80 15 5 ...\n", " ..- attr(*, \"label\")= chr \"Wissenschaftsadministration (z.B. Drittmitteleinwerbung, Projektverwaltung)%s%\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0\n", " .. ..- attr(*, \"names\")= chr \"\"\n", " $ v_5007 : 'haven_labelled' num 0 1 0 1 1 0 0 1 1 1 ...\n", " ..- attr(*, \"label\")= chr \"Wissenschaftskommunikation (z.B. Öffentlichkeitsarbeit, Vernetzung)%s%\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5008 : 'haven_labelled' num 0 10 0 5 20 0 0 3 5 3 ...\n", " ..- attr(*, \"label\")= chr \"Wissenschaftskommunikation (z.B. Öffentlichkeitsarbeit, Vernetzung)%s%\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0\n", " .. ..- attr(*, \"names\")= chr \"\"\n", " $ v_5009 : 'haven_labelled' num 0 0 0 0 0 1 0 0 0 1 ...\n", " ..- attr(*, \"label\")= chr \"Andere Tätigkeitsbereiche%s%\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5010 : 'haven_labelled' num 0 0 0 0 0 35 0 0 0 2 ...\n", " ..- attr(*, \"label\")= chr \"Andere Tätigkeitsbereiche%s%\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0\n", " .. ..- attr(*, \"names\")= chr \"\"\n", " $ v_2707 : 'haven_labelled' num 3 5 5 4 6 6 5 6 3 3 ...\n", " ..- attr(*, \"label\")= chr \"Soziale Netzwerke (z.B. Facebook, Google+)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2711 : 'haven_labelled' num 3 3 3 1 2 6 6 2 2 1 ...\n", " ..- attr(*, \"label\")= chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2723 : 'haven_labelled' num 3 3 6 4 1 5 4 2 6 6 ...\n", " ..- attr(*, \"label\")= chr \"Videokonferenz/VoIP (z.B. Skype, Adobe Connect)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2727 : 'haven_labelled' num 6 3 6 6 6 6 6 6 6 6 ...\n", " ..- attr(*, \"label\")= chr \"Microblogs (z.B. Twitter)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2735 : 'haven_labelled' num 3 3 6 6 3 4 6 6 3 2 ...\n", " ..- attr(*, \"label\")= chr \"Weblogs\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2743 : 'haven_labelled' num 6 3 3 3 3 3 3 3 3 3 ...\n", " ..- attr(*, \"label\")= chr \"Wikipedia\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2751 : 'haven_labelled' num 3 6 6 2 6 3 6 2 2 6 ...\n", " ..- attr(*, \"label\")= chr \"andere Wikis (z.B. Firmenwiki, fachspezifische Wikis etc.)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2759 : 'haven_labelled' num 3 2 3 6 3 2 3 6 3 2 ...\n", " ..- attr(*, \"label\")= chr \"Content Sharing/Cloud-Dienste (z.B. Dropbox, Slideshare)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2763 : 'haven_labelled' num 3 2 6 6 5 6 6 6 7 6 ...\n", " ..- attr(*, \"label\")= chr \"Online-Texteditoren (z.B. EtherPad, Google Docs)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2767 : 'haven_labelled' num 3 3 6 6 3 2 3 6 3 3 ...\n", " ..- attr(*, \"label\")= chr \"Internetforen\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2771 : 'haven_labelled' num 3 1 6 2 3 3 2 6 2 3 ...\n", " ..- attr(*, \"label\")= chr \"Mailinglisten\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2775 : 'haven_labelled' num 3 3 6 6 6 5 4 2 5 6 ...\n", " ..- attr(*, \"label\")= chr \"Chat/Instant Messaging (z.B. Skype, ICQ)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2779 : 'haven_labelled' num 3 2 3 1 3 3 1 2 2 2 ...\n", " ..- attr(*, \"label\")= chr \"Online-Archive/Datenbanken (z.B. Deutsche Digitale Bibliothek, Arxiv.org)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2783 : 'haven_labelled' num 1 2 6 6 3 6 6 6 2 6 ...\n", " ..- attr(*, \"label\")= chr \"Literaturverwaltung (z.B. Mendeley, Zotero)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2791 : 'haven_labelled' num 6 6 6 6 6 7 7 6 7 6 ...\n", " ..- attr(*, \"label\")= chr \"Social Bookmarking Services (z.B. Delicious, Bibsonomy)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2799 : 'haven_labelled' num 3 6 3 4 3 6 5 4 3 3 ...\n", " ..- attr(*, \"label\")= chr \"Video/Foto Community-Portale (z.B. YouTube, Flickr)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_2803 : 'haven_labelled' num 1 1 6 6 6 7 6 6 1 2 ...\n", " ..- attr(*, \"label\")= chr \"Lernmanagementsysteme (z.B. OLAT/OPAL, Moodle)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_426 : 'haven_labelled' num 3 2 6 6 5 7 7 6 3 6 ...\n", " ..- attr(*, \"label\")= chr \"Terminierungs- und Koordinationstools (z.B. Foodle, Asana, Trello)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6 7\n", " .. ..- attr(*, \"names\")= chr \"nur beruflich\" \"primär beruflich\" \"beruflich und privat\" \"primär privat\" ...\n", " $ v_5033 : 'haven_labelled' num NA 1 NA NA NA NA NA NA NA NA ...\n", " ..- attr(*, \"label\")= chr \"lesen anderer Tweets\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5034 : 'haven_labelled' num NA 1 NA NA NA NA NA NA NA NA ...\n", " ..- attr(*, \"label\")= chr \"eigene Beiträge (unter eigenem Account) posten\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_447 : 'haven_labelled' num NA 0 NA NA NA NA NA NA NA NA ...\n", " ..- attr(*, \"label\")= chr \"Beiträge anderer Personen kommentieren/weiterleiten\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5039 : 'haven_labelled' num 1 1 NA NA 1 1 NA NA 1 1 ...\n", " ..- attr(*, \"label\")= chr \"Beiträge anderer Blogger lesen\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5040 : 'haven_labelled' num 1 0 NA NA 0 0 NA NA 0 0 ...\n", " ..- attr(*, \"label\")= chr \"eigene Blogbeiträge verfassen\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5041 : 'haven_labelled' num 0 0 NA NA 0 1 NA NA 0 1 ...\n", " ..- attr(*, \"label\")= chr \"Beiträge anderer Blogger kommentieren\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5045 : 'haven_labelled' num NA 1 1 1 1 1 1 1 1 1 ...\n", " ..- attr(*, \"label\")= chr \"Artikel lesen\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5046 : 'haven_labelled' num NA 0 1 0 0 0 0 1 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Einträge verfassen und bearbeiten\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_448 : 'haven_labelled' num NA 0 0 0 0 0 0 0 0 0 ...\n", " ..- attr(*, \"label\")= chr \"kommentieren\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5050 : 'haven_labelled' num 1 NA NA 1 NA 1 NA 1 1 NA ...\n", " ..- attr(*, \"label\")= chr \"lesen\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5051 : 'haven_labelled' num 0 NA NA 0 NA 0 NA 0 0 NA ...\n", " ..- attr(*, \"label\")= chr \"Wiki-Seiten erstellen und bearbeiten\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_449 : 'haven_labelled' num 0 NA NA 0 NA 0 NA 0 0 NA ...\n", " ..- attr(*, \"label\")= chr \"kommentieren\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5062 : 'haven_labelled' num 1 1 NA NA 1 1 1 NA 1 1 ...\n", " ..- attr(*, \"label\")= chr \"Beiträge lesen\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5063 : 'haven_labelled' num 1 1 NA NA 0 1 0 NA 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Beiträge verfassen\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5064 : 'haven_labelled' num 1 0 NA NA 0 1 0 NA 0 1 ...\n", " ..- attr(*, \"label\")= chr \"Beiträge anderer Nutzer beantworten\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5056 : 'haven_labelled' num 1 NA 1 1 1 NA NA 1 1 1 ...\n", " ..- attr(*, \"label\")= chr \"Videos/Fotos ansehen\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5057 : 'haven_labelled' num 0 NA 0 0 0 NA NA 0 1 0 ...\n", " ..- attr(*, \"label\")= chr \"Videos/Fotos hoch- bzw. runterladen\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5058 : 'haven_labelled' num 0 NA 0 0 0 NA NA 0 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Videos/Fotos kommentieren\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_441 : 'haven_labelled' num 1 NA NA 1 NA NA NA NA 1 0 ...\n", " ..- attr(*, \"label\")= chr \"Kontakte mit Kolleg/innen suchen und pflegen\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_442 : 'haven_labelled' num 0 NA NA 0 NA NA NA NA 1 0 ...\n", " ..- attr(*, \"label\")= chr \"informieren was im eigenen Netzwerk aktuell passiert\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_443 : 'haven_labelled' num 1 NA NA 0 NA NA NA NA 1 1 ...\n", " ..- attr(*, \"label\")= chr \"persönliche Nachrichten verschicken\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_444 : 'haven_labelled' num 1 NA NA 0 NA NA NA NA 0 1 ...\n", " ..- attr(*, \"label\")= chr \"Beiträge/Kommentare schreiben\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_445 : 'haven_labelled' num 1 NA NA 0 NA NA NA NA 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Links und Informationen posten\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_446 : 'haven_labelled' num 1 NA NA 0 NA NA NA NA 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Austausch mit Kolleg/innen (z.B. in Gruppen)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5072 : 'haven_labelled' num 3 NA NA 6 NA NA NA NA 3 3 ...\n", " ..- attr(*, \"label\")= chr \"Soziale Netzwerke (z.B. Facebook, Google+)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5073 : 'haven_labelled' num 3 4 4 4 2 NA NA 3 5 6 ...\n", " ..- attr(*, \"label\")= chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5074 : 'haven_labelled' num 4 3 NA 6 5 NA 6 6 NA NA ...\n", " ..- attr(*, \"label\")= chr \"Videokonferenz/VoIP (z.B. Skype, Adobe Connect)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5075 : 'haven_labelled' num NA 3 NA NA NA NA NA NA NA NA ...\n", " ..- attr(*, \"label\")= chr \"Microblogs (z.B. Twitter)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5076 : 'haven_labelled' num 3 5 NA NA 3 3 NA NA 2 6 ...\n", " ..- attr(*, \"label\")= chr \"Weblogs\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5077 : 'haven_labelled' num NA 3 3 4 3 4 3 4 2 3 ...\n", " ..- attr(*, \"label\")= chr \"Wikipedia\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5078 : 'haven_labelled' num 4 NA NA 6 NA 6 NA 5 3 NA ...\n", " ..- attr(*, \"label\")= chr \"andere Wikis (z.B. Firmenwiki, fachspezifische Wikis etc.)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5079 : 'haven_labelled' num 3 2 5 NA 4 3 1 NA 2 2 ...\n", " ..- attr(*, \"label\")= chr \"Content Sharing/Cloud-Dienste (z.B. Dropbox, Slideshare)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5080 : 'haven_labelled' num 4 5 NA NA NA NA NA NA NA NA ...\n", " ..- attr(*, \"label\")= chr \"Online-Texteditoren (z.B. EtherPad, Google Docs)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5081 : 'haven_labelled' num 4 3 NA NA 6 2 4 NA 2 5 ...\n", " ..- attr(*, \"label\")= chr \"Internetforen\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5082 : 'haven_labelled' num 4 4 NA 6 5 2 5 NA 2 6 ...\n", " ..- attr(*, \"label\")= chr \"Mailinglisten\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5083 : 'haven_labelled' num 4 4 NA NA NA NA 6 6 NA NA ...\n", " ..- attr(*, \"label\")= chr \"Chat/Instant Messaging (z.B. Skype, ICQ)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5084 : 'haven_labelled' num 2 2 4 4 5 3 5 5 3 4 ...\n", " ..- attr(*, \"label\")= chr \"Online-Archive/Datenbanken (z.B. Deutsche Digitale Bibliothek, Arxiv.org)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5085 : 'haven_labelled' num 3 3 NA NA 1 NA NA NA 4 NA ...\n", " ..- attr(*, \"label\")= chr \"Literaturverwaltung (z.B. Mendeley, Zotero)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5086 : 'haven_labelled' num NA NA NA NA NA NA NA NA NA NA ...\n", " ..- attr(*, \"label\")= chr \"Social Bookmarking Services (z.B. Delicious, Bibsonomy)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5087 : 'haven_labelled' num 4 NA 2 5 4 NA NA 5 4 4 ...\n", " ..- attr(*, \"label\")= chr \"Video/Foto Community-Portale (z.B. YouTube, Flickr)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5088 : 'haven_labelled' num 1 4 NA NA NA NA NA NA 6 5 ...\n", " ..- attr(*, \"label\")= chr \"Lernmanagementsysteme (z.B. OLAT/OPAL, Moodle)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_427 : 'haven_labelled' num 2 4 NA NA NA NA NA NA 2 NA ...\n", " ..- attr(*, \"label\")= chr \"Terminierungs- und Koordinationstools (z.B. Foodle, Asana, Trello)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 1 2 3 4 5 6\n", " .. ..- attr(*, \"names\")= chr \"mehrmals täglich\" \"täglich\" \"mehrfach wöchentlich\" \"wöchentlich\" ...\n", " $ v_5109 : 'haven_labelled' num 0 NA NA 0 NA NA NA NA 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Soziale Netzwerke (z.B. Facebook, Google+) (Lehre)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5126 : 'haven_labelled' num 0 NA NA 0 NA NA NA NA 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Soziale Netzwerke (z.B. Facebook, Google+) (Forschung)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5143 : 'haven_labelled' num 1 NA NA 0 NA NA NA NA 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Soziale Netzwerke (z.B. Facebook, Google+) (Wissenschafts- kommunikation )\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5160 : 'haven_labelled' num 1 NA NA 0 NA NA NA NA 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Soziale Netzwerke (z.B. Facebook, Google+) (Wissenschafts- administration)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5110 : 'haven_labelled' num 0 0 0 0 0 NA NA 0 0 0 ...\n", " ..- attr(*, \"label\")= chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu) (Lehre)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5127 : 'haven_labelled' num 0 0 0 0 0 NA NA 0 1 0 ...\n", " ..- attr(*, \"label\")= chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu) (Forschung)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5144 : 'haven_labelled' num 0 0 0 0 0 NA NA 1 1 0 ...\n", " ..- attr(*, \"label\")= chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu) (Wissenschafts- kommunikation )\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5161 : 'haven_labelled' num 0 1 0 0 1 NA NA 0 0 1 ...\n", " ..- attr(*, \"label\")= chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu) (Wissenschafts- administration)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5111 : 'haven_labelled' num 0 0 NA 0 0 NA 0 0 NA NA ...\n", " ..- attr(*, \"label\")= chr \"Videokonferenz/VoIP (z.B. Skype, Adobe Connect) (Lehre)\"\n", " ..- attr(*, \"format.spss\")= chr \"F11.0\"\n", " ..- attr(*, \"labels\")= Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " [list output truncated]\n" ] }, { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
za_nrversiondoilfdnv_1054v_1055v_1056v_1068v_73v_1070...Anteil_Lehre_katAnteil_Wiss.admin_katAnteil_Wiss.komm_katAnteil_and_Taetigk_katv_gew_grupv_gewichte_01v_privconv_comanxv_comselfv_curiosity
5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 41 2 -99 7 -99 13 -99 ... 4 2 0 0 2 2.0447439 2.25 1.50 3.00 3.00
5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 44 6 -99 7 -99 9 -99 ... 3 2 1 0 1 0.8371413 2.50 1.50 3.50 3.75
5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 46 6 -99 5 -99 13 -99 ... 6 0 0 0 2 2.0447439 3.25 2.00 2.75 3.25
5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 48 6 -99 7 -99 13 -99 ... 5 0 1 0 2 2.0447439 3.00 1.00 1.25 2.25
5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 77 2 -99 9 -99 15 Informationswissenschaft... 0 1 2 0 1 0.8371413 2.00 1.75 4.00 3.25
5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 87 6 -99 9 -99 3 -99 ... 4 0 0 3 1 0.8371413 4.00 1.00 3.00 4.75
\n" ], "text/latex": [ "\\begin{tabular}{r|llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll}\n", " za\\_nr & version & doi & lfdn & v\\_1054 & v\\_1055 & v\\_1056 & v\\_1068 & v\\_73 & v\\_1070 & ... & Anteil\\_Lehre\\_kat & Anteil\\_Wiss.admin\\_kat & Anteil\\_Wiss.komm\\_kat & Anteil\\_and\\_Taetigk\\_kat & v\\_gew\\_grup & v\\_gewichte\\_01 & v\\_privcon & v\\_comanx & v\\_comself & v\\_curiosity\\\\\n", "\\hline\n", "\t 5972 & 1.0.0 (2015-11-06) & doi:10.4232/1.12262 & 41 & 2 & -99 & 7 & -99 & 13 & -99 & ... & 4 & 2 & 0 & 0 & 2 & 2.0447439 & 2.25 & 1.50 & 3.00 & 3.00 \\\\\n", "\t 5972 & 1.0.0 (2015-11-06) & doi:10.4232/1.12262 & 44 & 6 & -99 & 7 & -99 & 9 & -99 & ... & 3 & 2 & 1 & 0 & 1 & 0.8371413 & 2.50 & 1.50 & 3.50 & 3.75 \\\\\n", "\t 5972 & 1.0.0 (2015-11-06) & doi:10.4232/1.12262 & 46 & 6 & -99 & 5 & -99 & 13 & -99 & ... & 6 & 0 & 0 & 0 & 2 & 2.0447439 & 3.25 & 2.00 & 2.75 & 3.25 \\\\\n", "\t 5972 & 1.0.0 (2015-11-06) & doi:10.4232/1.12262 & 48 & 6 & -99 & 7 & -99 & 13 & -99 & ... & 5 & 0 & 1 & 0 & 2 & 2.0447439 & 3.00 & 1.00 & 1.25 & 2.25 \\\\\n", "\t 5972 & 1.0.0 (2015-11-06) & doi:10.4232/1.12262 & 77 & 2 & -99 & 9 & -99 & 15 & Informationswissenschaft & ... & 0 & 1 & 2 & 0 & 1 & 0.8371413 & 2.00 & 1.75 & 4.00 & 3.25 \\\\\n", "\t 5972 & 1.0.0 (2015-11-06) & doi:10.4232/1.12262 & 87 & 6 & -99 & 9 & -99 & 3 & -99 & ... & 4 & 0 & 0 & 3 & 1 & 0.8371413 & 4.00 & 1.00 & 3.00 & 4.75 \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "| za_nr | version | doi | lfdn | v_1054 | v_1055 | v_1056 | v_1068 | v_73 | v_1070 | ... | Anteil_Lehre_kat | Anteil_Wiss.admin_kat | Anteil_Wiss.komm_kat | Anteil_and_Taetigk_kat | v_gew_grup | v_gewichte_01 | v_privcon | v_comanx | v_comself | v_curiosity |\n", "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", "| 5972 | 1.0.0 (2015-11-06) | doi:10.4232/1.12262 | 41 | 2 | -99 | 7 | -99 | 13 | -99 | ... | 4 | 2 | 0 | 0 | 2 | 2.0447439 | 2.25 | 1.50 | 3.00 | 3.00 |\n", "| 5972 | 1.0.0 (2015-11-06) | doi:10.4232/1.12262 | 44 | 6 | -99 | 7 | -99 | 9 | -99 | ... | 3 | 2 | 1 | 0 | 1 | 0.8371413 | 2.50 | 1.50 | 3.50 | 3.75 |\n", "| 5972 | 1.0.0 (2015-11-06) | doi:10.4232/1.12262 | 46 | 6 | -99 | 5 | -99 | 13 | -99 | ... | 6 | 0 | 0 | 0 | 2 | 2.0447439 | 3.25 | 2.00 | 2.75 | 3.25 |\n", "| 5972 | 1.0.0 (2015-11-06) | doi:10.4232/1.12262 | 48 | 6 | -99 | 7 | -99 | 13 | -99 | ... | 5 | 0 | 1 | 0 | 2 | 2.0447439 | 3.00 | 1.00 | 1.25 | 2.25 |\n", "| 5972 | 1.0.0 (2015-11-06) | doi:10.4232/1.12262 | 77 | 2 | -99 | 9 | -99 | 15 | Informationswissenschaft | ... | 0 | 1 | 2 | 0 | 1 | 0.8371413 | 2.00 | 1.75 | 4.00 | 3.25 |\n", "| 5972 | 1.0.0 (2015-11-06) | doi:10.4232/1.12262 | 87 | 6 | -99 | 9 | -99 | 3 | -99 | ... | 4 | 0 | 0 | 3 | 1 | 0.8371413 | 4.00 | 1.00 | 3.00 | 4.75 |\n", "\n" ], "text/plain": [ " za_nr version doi lfdn v_1054 v_1055 v_1056 v_1068\n", "1 5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 41 2 -99 7 -99 \n", "2 5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 44 6 -99 7 -99 \n", "3 5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 46 6 -99 5 -99 \n", "4 5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 48 6 -99 7 -99 \n", "5 5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 77 2 -99 9 -99 \n", "6 5972 1.0.0 (2015-11-06) doi:10.4232/1.12262 87 6 -99 9 -99 \n", " v_73 v_1070 ... Anteil_Lehre_kat Anteil_Wiss.admin_kat\n", "1 13 -99 ... 4 2 \n", "2 9 -99 ... 3 2 \n", "3 13 -99 ... 6 0 \n", "4 13 -99 ... 5 0 \n", "5 15 Informationswissenschaft ... 0 1 \n", "6 3 -99 ... 4 0 \n", " Anteil_Wiss.komm_kat Anteil_and_Taetigk_kat v_gew_grup v_gewichte_01\n", "1 0 0 2 2.0447439 \n", "2 1 0 1 0.8371413 \n", "3 0 0 2 2.0447439 \n", "4 1 0 2 2.0447439 \n", "5 2 0 1 0.8371413 \n", "6 0 3 1 0.8371413 \n", " v_privcon v_comanx v_comself v_curiosity\n", "1 2.25 1.50 3.00 3.00 \n", "2 2.50 1.50 3.50 3.75 \n", "3 3.25 2.00 2.75 3.25 \n", "4 3.00 1.00 1.25 2.25 \n", "5 2.00 1.75 4.00 3.25 \n", "6 4.00 1.00 3.00 4.75 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Falls die Bibliothek bei Ihnen doch nicht verfügbar sein sollte, ist eine Installation mit der auskommentierten Anweisung möglich.\n", "#Sollte dies bei Ihnen nicht klappen, finden Sie weitere Hinweise zur Installation von Bibliotheken am Ende des Jupyter Notebooks\n", "#install.packages(\"haven\")\n", "\n", "#Laden der Bibliothek haven mit der Funktionalität zum Arbeiten mit SPSS-Dateien\n", "library(haven) #genauso möglich: libray(\"haven\")\n", "\n", "#Einlsen der SPSS-Datei. Die Daten sollen in einem Dataframe gespeichert werden, daher kapseln wir die Funktion\n", "#in der Funktion as.data.frame().\n", "social_media_survey <- as.data.frame(read_spss(\"data/ZA5972_v1-0-0.sav\"))\n", "str(social_media_survey)\n", "head(social_media_survey)" ] }, { "cell_type": "code", "execution_count": 76, "id": "buried-stage", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 'haven_labelled' num [1:2083] 4 3 6 5 0 4 1 2 3 3 ...\n", " - attr(*, \"label\")= chr \"Anteil Lehre kategorisiert\"\n", " - attr(*, \"format.spss\")= chr \"F2.0\"\n", " - attr(*, \"display_width\")= int 18\n", " - attr(*, \"labels\")= Named num [1:8] -99 0 1 2 3 4 5 6\n", " ..- attr(*, \"names\")= chr [1:8] \"keine Angabe\" \"keine Lehrtätigkeit\" \"1-10%\" \"11-30%\" ...\n" ] } ], "source": [ "str(social_media_survey$Anteil_Lehre_kat)" ] }, { "cell_type": "markdown", "id": "elder-claim", "metadata": {}, "source": [ "Um die Daten verwenden zu können, ist i.d.R. eine sorgfältig Aufbereitung notwendig, insbesondere bei kategorialen Variablen. In diesem Zusammenhang sollte immer die Dokumentation der ursprünglichen Erhebung herangezogen werden, insbesondere das Codebook. Weitere Details dazu finden Sie im nächsten Jupyter Notebook." ] }, { "attachments": { "image-2.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "binary-significance", "metadata": {}, "source": [ "# Installieren von R packages in die Anancoda-Umgebung\n", "Wenn die Installation weitere Bibliotheken (packages) aus dem Jupyter Notebook heraus bei Ihnen nicht funktioniert, dann müssen Sie zunächst in den Anaconda-Promt wechseln.\n", "\n", "![image-2.png](attachment:image-2.png)\n", "\n", "Dort wechseln Sie in Ihr `R`-environment. Wenn Sie der Standardanleitung gefolgt sind, heißt dies wahrscheinlich `env-r` oder `env_r`. Anschließend geben Sie den Befehl `conda install r-` also für `haven` `conda install r-haven` ein. Sie werden nun noch einmal gefragt, ob Sie mit der Installation fortfahren wollen. Dies bestätigen Sie bitte. Nach erfolgreicher Installation können Sie die Bibliothek verwenden." ] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.6.1" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }