{ "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": "intelligent-surgeon", "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": 5, "id": "environmental-marketplace", "metadata": {}, "outputs": [ { "data": { "text/html": [ "1.61" ], "text/latex": [ "1.61" ], "text/markdown": [ "1.61" ], "text/plain": [ "[1] 1.61" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "1.61" ], "text/latex": [ "1.61" ], "text/markdown": [ "1.61" ], "text/plain": [ "[1] 1.61" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "?round #Hilfe aufrufen\n", "round(log(5), 2) #Runden des Ergebnisses der Berechnung des natürlichen Logarithmus der Zahl 5\n", "\n", "#Alternativ in mehreren Einzelschritten:\n", "ergebnis_log_5 <- log(5)\n", "round(ergebnis_log_5, 2)" ] }, { "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": 6, "id": "actual-willow", "metadata": {}, "outputs": [], "source": [ "a = 5 #Zuweisung mit \"=\"\n", "b <- 2 #Zuweisung mit \"<-\"" ] }, { "cell_type": "code", "execution_count": 7, "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": 8, "id": "immune-houston", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 5
  2. 2
\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": 9, "id": "worthy-lighter", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 10
  2. 7
\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", "
  1. 25
  2. 10
\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": 10, "id": "vulnerable-graduate", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 20
  2. 60
  3. 120
\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": 11, "id": "civic-sensitivity", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
ja
25
nein
25
\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": 12, "id": "metropolitan-volume", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
ja
0.5
nein
0.5
\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": "9048264e", "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": 13, "id": "cda910a7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
weiblich
0.428
männlich
0.494
divers
0.078
\n" ], "text/latex": [ "\\begin{description*}\n", "\\item[weiblich] 0.428\n", "\\item[männlich] 0.494\n", "\\item[divers] 0.078\n", "\\end{description*}\n" ], "text/markdown": [ "weiblich\n", ": 0.428männlich\n", ": 0.494divers\n", ": 0.078\n", "\n" ], "text/plain": [ "weiblich männlich divers \n", " 0.428 0.494 0.078 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "geschlecht <- c(214,247,39) #Vektor anlegen\n", "names(geschlecht) <- c(\"weiblich\", \"männlich\", \"divers\") #Beschriftung\n", "geschlecht/sum(geschlecht) #Berechnen der relativen Häufigkeit" ] }, { "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": 14, "id": "behavioral-airport", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
\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", "
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
\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": 15, "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": 16, "id": "about-vermont", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 2
  2. 3
  3. 4
\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", "
  1. 2
  2. 3
  3. 4
\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": 17, "id": "heavy-torture", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 5
  2. 2
  3. 3
  4. 4
  5. 5
\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", "
  1. 5
  2. 4
  3. 4
  4. 4
  5. 5
\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", "
  1. 5
  2. 4
  3. 3
  4. 2
  5. 5
\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": "786cb1d0", "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": 18, "id": "a67cbe98", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 1
  2. 3
  3. 5
  4. 7
  5. 9
\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", "
  1. 1
  2. 3
  3. 5
  4. 8
  5. 10
\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": [ "zahlenfolge <- seq(1,9,2) #Anlegen des Vektors mit Hilfe der seq-Funktion. Beginnend bei 1 bis zu einem Wert von 9 und einer Schrittweite von 2\n", "zahlenfolge\n", "zahlenfolge[4:5] <- c(8,10); zahlenfolge #Werte verändern und Ergebnis betrachten" ] }, { "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": 19, "id": "usual-equity", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 5 × 3
IDVorkenntnisseVorbereitung
<int><fct><dbl>
1ja 25
2nein 32
3nein 41
4ja 29
5keine Angabe47
\n" ], "text/latex": [ "A data.frame: 5 × 3\n", "\\begin{tabular}{lll}\n", " ID & Vorkenntnisse & Vorbereitung\\\\\n", " & & \\\\\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", "A data.frame: 5 × 3\n", "\n", "| ID <int> | Vorkenntnisse <fct> | Vorbereitung <dbl> |\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": 20, "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": "13523b79", "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": 21, "id": "5bab5d9f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 5 × 3
IDAlterStudiengang
<int><dbl><fct>
123DDM
230IW
327DDM
432DDM
526IW
\n" ], "text/latex": [ "A data.frame: 5 × 3\n", "\\begin{tabular}{lll}\n", " ID & Alter & Studiengang\\\\\n", " & & \\\\\n", "\\hline\n", "\t 1 & 23 & DDM\\\\\n", "\t 2 & 30 & IW \\\\\n", "\t 3 & 27 & DDM\\\\\n", "\t 4 & 32 & DDM\\\\\n", "\t 5 & 26 & IW \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 5 × 3\n", "\n", "| ID <int> | Alter <dbl> | Studiengang <fct> |\n", "|---|---|---|\n", "| 1 | 23 | DDM |\n", "| 2 | 30 | IW |\n", "| 3 | 27 | DDM |\n", "| 4 | 32 | DDM |\n", "| 5 | 26 | IW |\n", "\n" ], "text/plain": [ " ID Alter Studiengang\n", "1 1 23 DDM \n", "2 2 30 IW \n", "3 3 27 DDM \n", "4 4 32 DDM \n", "5 5 26 IW " ] }, "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 1 2\n" ] } ], "source": [ "#Dataframe in einem Schritt anlegen. Alternativ können auch für die einzelnen Variablen zunächst Vektoren angelegt werden und \n", "#anschließend zu einem Dataframe zusammengeführt werden\n", "erster_dataframe <- data.frame(ID = 1:5, Alter = c(23,30,27,32,26), Studiengang = c(\"DDM\", \"IW\", \"DDM\", \"DDM\", \"IW\"))\n", "erster_dataframe\n", "str(erster_dataframe)" ] }, { "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": 22, "id": "strong-knife", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\n", "
A data.frame: 1 × 3
IDVorkenntnisseVorbereitung
<int><fct><dbl>
11ja25
\n" ], "text/latex": [ "A data.frame: 1 × 3\n", "\\begin{tabular}{r|lll}\n", " & ID & Vorkenntnisse & Vorbereitung\\\\\n", " & & & \\\\\n", "\\hline\n", "\t1 & 1 & ja & 25\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 1 × 3\n", "\n", "| | ID <int> | Vorkenntnisse <fct> | Vorbereitung <dbl> |\n", "|---|---|---|---|\n", "| 1 | 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", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 3 × 3
IDVorkenntnisseVorbereitung
<int><fct><dbl>
22nein32
33nein41
44ja 29
\n" ], "text/latex": [ "A data.frame: 3 × 3\n", "\\begin{tabular}{r|lll}\n", " & ID & Vorkenntnisse & Vorbereitung\\\\\n", " & & & \\\\\n", "\\hline\n", "\t2 & 2 & nein & 32\\\\\n", "\t3 & 3 & nein & 41\\\\\n", "\t4 & 4 & ja & 29\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 3 × 3\n", "\n", "| | ID <int> | Vorkenntnisse <fct> | Vorbereitung <dbl> |\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": 23, "id": "finite-holder", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 25
  2. 32
  3. 41
  4. 29
  5. 47
\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", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 5 × 2
IDVorbereitung
<int><dbl>
125
232
341
429
547
\n" ], "text/latex": [ "A data.frame: 5 × 2\n", "\\begin{tabular}{ll}\n", " ID & Vorbereitung\\\\\n", " & \\\\\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", "A data.frame: 5 × 2\n", "\n", "| ID <int> | Vorbereitung <dbl> |\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": 24, "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", "\n", "\t\n", "\t\n", "\n", "
A data.frame: 2 × 2
IDVorbereitung
<int><dbl>
1125
2232
\n" ], "text/latex": [ "A data.frame: 2 × 2\n", "\\begin{tabular}{r|ll}\n", " & ID & Vorbereitung\\\\\n", " & & \\\\\n", "\\hline\n", "\t1 & 1 & 25\\\\\n", "\t2 & 2 & 32\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 2 × 2\n", "\n", "| | ID <int> | Vorbereitung <dbl> |\n", "|---|---|---|\n", "| 1 | 1 | 25 |\n", "| 2 | 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": 25, "id": "automotive-import", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. ja
  2. nein
  3. nein
  4. ja
  5. keine Angabe
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t\n", "\t
  1. 'ja'
  2. 'keine Angabe'
  3. 'nein'
\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", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 5 × 2
IDVorkenntnisse
<int><fct>
1ja
2nein
3nein
4ja
5keine Angabe
\n" ], "text/latex": [ "A data.frame: 5 × 2\n", "\\begin{tabular}{ll}\n", " ID & Vorkenntnisse\\\\\n", " & \\\\\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", "A data.frame: 5 × 2\n", "\n", "| ID <int> | Vorkenntnisse <fct> |\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": 26, "id": "sonic-booth", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\n", "
A data.frame: 2 × 3
IDVorkenntnisseVorbereitung
<int><fct><dbl>
11ja25
44ja29
\n" ], "text/latex": [ "A data.frame: 2 × 3\n", "\\begin{tabular}{r|lll}\n", " & ID & Vorkenntnisse & Vorbereitung\\\\\n", " & & & \\\\\n", "\\hline\n", "\t1 & 1 & ja & 25\\\\\n", "\t4 & 4 & ja & 29\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 2 × 3\n", "\n", "| | ID <int> | Vorkenntnisse <fct> | Vorbereitung <dbl> |\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": 27, "id": "saving-budget", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. ja
  2. ja
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t\n", "\t
  1. 'ja'
  2. 'keine Angabe'
  3. 'nein'
\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": 28, "id": "ideal-magnet", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 4 × 3
IDVorkenntnisseVorbereitung
<int><fct><dbl>
11ja 25
22nein32
33nein41
44ja 29
\n" ], "text/latex": [ "A data.frame: 4 × 3\n", "\\begin{tabular}{r|lll}\n", " & ID & Vorkenntnisse & Vorbereitung\\\\\n", " & & & \\\\\n", "\\hline\n", "\t1 & 1 & ja & 25\\\\\n", "\t2 & 2 & nein & 32\\\\\n", "\t3 & 3 & nein & 41\\\\\n", "\t4 & 4 & ja & 29\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 4 × 3\n", "\n", "| | ID <int> | Vorkenntnisse <fct> | Vorbereitung <dbl> |\n", "|---|---|---|---|\n", "| 1 | 1 | ja | 25 |\n", "| 2 | 2 | nein | 32 |\n", "| 3 | 3 | nein | 41 |\n", "| 4 | 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": 29, "id": "cooked-typing", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\n", "
A data.frame: 1 × 3
IDVorkenntnisseVorbereitung
<int><fct><dbl>
11ja25
\n" ], "text/latex": [ "A data.frame: 1 × 3\n", "\\begin{tabular}{r|lll}\n", " & ID & Vorkenntnisse & Vorbereitung\\\\\n", " & & & \\\\\n", "\\hline\n", "\t1 & 1 & ja & 25\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 1 × 3\n", "\n", "| | ID <int> | Vorkenntnisse <fct> | Vorbereitung <dbl> |\n", "|---|---|---|---|\n", "| 1 | 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": "11eca6b2", "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": 30, "id": "07e688d2", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 3 × 3
IDAlterStudiengang
<int><dbl><fct>
1123DDM
3327DDM
4432DDM
\n" ], "text/latex": [ "A data.frame: 3 × 3\n", "\\begin{tabular}{r|lll}\n", " & ID & Alter & Studiengang\\\\\n", " & & & \\\\\n", "\\hline\n", "\t1 & 1 & 23 & DDM\\\\\n", "\t3 & 3 & 27 & DDM\\\\\n", "\t4 & 4 & 32 & DDM\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 3 × 3\n", "\n", "| | ID <int> | Alter <dbl> | Studiengang <fct> |\n", "|---|---|---|---|\n", "| 1 | 1 | 23 | DDM |\n", "| 3 | 3 | 27 | DDM |\n", "| 4 | 4 | 32 | DDM |\n", "\n" ], "text/plain": [ " ID Alter Studiengang\n", "1 1 23 DDM \n", "3 3 27 DDM \n", "4 4 32 DDM " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "erster_dataframe[erster_dataframe$Studiengang == \"DDM\",] #Wichtig: Komma nicht vergessen!" ] }, { "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": 31, "id": "sharp-backup", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. ja
  2. nein
  3. ja
  4. ja
  5. nein
  6. ja
  7. jaja
  8. nein
  9. ja
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t\n", "\t
  1. 'ja'
  2. 'jaja'
  3. 'nein'
\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": 32, "id": "premium-blood", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. ja
  2. nein
  3. ja
  4. ja
  5. nein
  6. ja
  7. <NA>
  8. nein
  9. ja
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t\n", "\t
  1. 'ja'
  2. 'nein'
\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": 33, "id": "civil-director", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. ja
  2. nein
  3. ja
  4. ja
  5. nein
  6. ja
  7. ja
  8. nein
  9. ja
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t\n", "\t
  1. 'ja'
  2. 'nein'
\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": 34, "id": "scheduled-rehabilitation", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 'extra large'
  2. 'extra small'
  3. 'large'
  4. 'medium'
  5. 'small'
\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": 35, "id": "looking-terminal", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. extra small
  2. extra small
  3. small
  4. large
  5. small
  6. medium
  7. extra large
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t\n", "\t
  1. 'extra small'
  2. 'small'
  3. 'medium'
  4. 'large'
  5. 'extra large'
\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": 36, "id": "imperial-secondary", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. extra small
  2. extra small
  3. small
  4. large
  5. small
  6. medium
  7. extra large
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t\n", "\t
  1. 'extra large'
  2. 'large'
  3. 'medium'
  4. 'small'
  5. 'extra small'
\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", "
  1. extra small
  2. extra small
  3. small
  4. large
  5. small
  6. medium
  7. extra large
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t\n", "\t
  1. 'extra small'
  2. 'small'
  3. 'medium'
  4. 'large'
  5. 'extra large'
\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", "#Bitte die Levels ausklappen, sonst wird die Änderung nicht sichtbar.\n", "ordered_test_factor <- factor(ordered_test_factor, levels = rev(levels(ordered_test_factor)))\n", "ordered_test_factor" ] }, { "cell_type": "code", "execution_count": 37, "id": "tired-portfolio", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. extra small
  2. extra small
  3. small
  4. large
  5. small
  6. medium
  7. extra large
\n", "\n", "
\n", "\t\n", "\t\tLevels:\n", "\t\n", "\t\n", "\t
  1. 'extra small'
  2. 'medium'
  3. 'extra large'
  4. 'small'
  5. 'large'
\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": 38, "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", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 6 × 5
IDWohnortAlterBildungsabschlussGeschlecht
<int><fct><int><fct><fct>
11Potsdam1950kein Abschluss m
22Potsdam 40Hauptschulabschluss m
33Potsdam 59Realschulabschluss oder gleichwertigm
44Potsdam 22Bachelor w
55Berlin 61kein Abschluss w
66Berlin 45Realschulabschluss oder gleichwertigw
\n" ], "text/latex": [ "A data.frame: 6 × 5\n", "\\begin{tabular}{r|lllll}\n", " & ID & Wohnort & Alter & Bildungsabschluss & Geschlecht\\\\\n", " & & & & & \\\\\n", "\\hline\n", "\t1 & 1 & Potsdam & 1950 & kein Abschluss & m\\\\\n", "\t2 & 2 & Potsdam & 40 & Hauptschulabschluss & m\\\\\n", "\t3 & 3 & Potsdam & 59 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t4 & 4 & Potsdam & 22 & Bachelor & w\\\\\n", "\t5 & 5 & Berlin & 61 & kein Abschluss & w\\\\\n", "\t6 & 6 & Berlin & 45 & Realschulabschluss oder gleichwertig & w\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 6 × 5\n", "\n", "| | ID <int> | Wohnort <fct> | Alter <int> | Bildungsabschluss <fct> | Geschlecht <fct> |\n", "|---|---|---|---|---|---|\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 |\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", "#Bei einigen Betriebssystemen kann der Parameter für das Encoding auch weggelassen 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": 39, "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", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 6 × 5
IDWohnortAlterBildungsabschlussGeschlecht
<int><fct><int><fct><fct>
11Potsdam1950kein Abschluss m
22Potsdam 40Hauptschulabschluss m
33Potsdam 59Realschulabschluss oder gleichwertigm
44Potsdam 22Bachelor w
55Berlin 61kein Abschluss w
66Berlin 45Realschulabschluss oder gleichwertigw
\n" ], "text/latex": [ "A data.frame: 6 × 5\n", "\\begin{tabular}{r|lllll}\n", " & ID & Wohnort & Alter & Bildungsabschluss & Geschlecht\\\\\n", " & & & & & \\\\\n", "\\hline\n", "\t1 & 1 & Potsdam & 1950 & kein Abschluss & m\\\\\n", "\t2 & 2 & Potsdam & 40 & Hauptschulabschluss & m\\\\\n", "\t3 & 3 & Potsdam & 59 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t4 & 4 & Potsdam & 22 & Bachelor & w\\\\\n", "\t5 & 5 & Berlin & 61 & kein Abschluss & w\\\\\n", "\t6 & 6 & Berlin & 45 & Realschulabschluss oder gleichwertig & w\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 6 × 5\n", "\n", "| | ID <int> | Wohnort <fct> | Alter <int> | Bildungsabschluss <fct> | Geschlecht <fct> |\n", "|---|---|---|---|---|---|\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 |\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": 40, "id": "functional-granny", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 'Abitur'
  2. 'Bachelor'
  3. 'Hauptschulabschluss'
  4. 'Hauptschulabschluss '
  5. 'kein Abschluss'
  6. 'Master'
  7. 'Master '
  8. 'Promotion'
  9. 'Realschulabschluss oder gleichwertig'
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'Abitur'\n", "\\item 'Bachelor'\n", "\\item 'Hauptschulabschluss'\n", "\\item 'Hauptschulabschluss '\n", "\\item 'kein Abschluss'\n", "\\item 'Master'\n", "\\item 'Master '\n", "\\item 'Promotion'\n", "\\item 'Realschulabschluss oder gleichwertig'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'Abitur'\n", "2. 'Bachelor'\n", "3. 'Hauptschulabschluss'\n", "4. 'Hauptschulabschluss '\n", "5. 'kein Abschluss'\n", "6. 'Master'\n", "7. 'Master '\n", "8. 'Promotion'\n", "9. 'Realschulabschluss oder gleichwertig'\n", "\n", "\n" ], "text/plain": [ "[1] \"Abitur\" \n", "[2] \"Bachelor\" \n", "[3] \"Hauptschulabschluss\" \n", "[4] \"Hauptschulabschluss \" \n", "[5] \"kein Abschluss\" \n", "[6] \"Master\" \n", "[7] \"Master \" \n", "[8] \"Promotion\" \n", "[9] \"Realschulabschluss oder gleichwertig\"" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
  1. 'Promotion'
  2. 'Master '
  3. 'Master'
  4. 'Bachelor'
  5. 'Abitur'
  6. 'Realschulabschluss oder gleichwertig'
  7. 'Hauptschulabschluss'
  8. 'Hauptschulabschluss '
  9. 'kein Abschluss'
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'Promotion'\n", "\\item 'Master '\n", "\\item 'Master'\n", "\\item 'Bachelor'\n", "\\item 'Abitur'\n", "\\item 'Realschulabschluss oder gleichwertig'\n", "\\item 'Hauptschulabschluss'\n", "\\item 'Hauptschulabschluss '\n", "\\item 'kein Abschluss'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'Promotion'\n", "2. 'Master '\n", "3. 'Master'\n", "4. 'Bachelor'\n", "5. 'Abitur'\n", "6. 'Realschulabschluss oder gleichwertig'\n", "7. 'Hauptschulabschluss'\n", "8. 'Hauptschulabschluss '\n", "9. 'kein Abschluss'\n", "\n", "\n" ], "text/plain": [ "[1] \"Promotion\" \n", "[2] \"Master \" \n", "[3] \"Master\" \n", "[4] \"Bachelor\" \n", "[5] \"Abitur\" \n", "[6] \"Realschulabschluss oder gleichwertig\"\n", "[7] \"Hauptschulabschluss\" \n", "[8] \"Hauptschulabschluss \" \n", "[9] \"kein Abschluss\" " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "\n", " Abitur Bachelor \n", " 109 57 \n", " Hauptschulabschluss Hauptschulabschluss \n", " 81 2 \n", " kein Abschluss Master \n", " 72 58 \n", " Master Promotion \n", " 1 19 \n", "Realschulabschluss oder gleichwertig \n", " 101 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "levels(sample_data$Bildungsabschluss)#Levels in der bisherigen Reihenfolge mit allen Ausprägungen abrufen\n", "levels(sample_data$Bildungsabschluss)[c(8,7,6,2,1,9,3,4,5)] #richtige Reihenfolge testhalber ausgeben\n", "table(sample_data$Bildungsabschluss)#Häufigkeiten zur Kontrolle betrachten (Befehl wird im nächsten Jupyter Notebook eingeführt)" ] }, { "cell_type": "code", "execution_count": 41, "id": "f0f7a267", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
  1. 'Promotion'
  2. 'Master'
  3. 'Bachelor'
  4. 'Abitur'
  5. 'Realschulabschluss oder gleichwertig'
  6. 'Hauptschulabschluss'
  7. 'kein Abschluss'
\n" ], "text/latex": [ "\\begin{enumerate*}\n", "\\item 'Promotion'\n", "\\item 'Master'\n", "\\item 'Bachelor'\n", "\\item 'Abitur'\n", "\\item 'Realschulabschluss oder gleichwertig'\n", "\\item 'Hauptschulabschluss'\n", "\\item 'kein Abschluss'\n", "\\end{enumerate*}\n" ], "text/markdown": [ "1. 'Promotion'\n", "2. 'Master'\n", "3. 'Bachelor'\n", "4. 'Abitur'\n", "5. 'Realschulabschluss oder gleichwertig'\n", "6. 'Hauptschulabschluss'\n", "7. 'kein Abschluss'\n", "\n", "\n" ], "text/plain": [ "[1] \"Promotion\" \n", "[2] \"Master\" \n", "[3] \"Bachelor\" \n", "[4] \"Abitur\" \n", "[5] \"Realschulabschluss oder gleichwertig\"\n", "[6] \"Hauptschulabschluss\" \n", "[7] \"kein Abschluss\" " ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ " Ord.factor w/ 7 levels \"Promotion\"<\"Master\"<..: 7 6 5 3 7 5 6 6 6 7 ...\n" ] }, { "data": { "text/plain": [ "\n", " Promotion Master \n", " 19 59 \n", " Bachelor Abitur \n", " 57 109 \n", "Realschulabschluss oder gleichwertig Hauptschulabschluss \n", " 101 83 \n", " kein Abschluss \n", " 72 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Neuordnung der Faktorlevel bei gleichzeitiger Korrektur der Schreibvarianten\n", "sample_data$Bildungsabschluss <- factor(sample_data$Bildungsabschluss, \n", " levels=levels(sample_data$Bildungsabschluss)[c(8,7,6,2,1,9,3,4,5)],\n", " labels=c('Promotion','Master','Master','Bachelor','Abitur','Realschulabschluss oder gleichwertig','Hauptschulabschluss','Hauptschulabschluss','kein Abschluss'), ordered=TRUE)\n", "#Kontrolle\n", "levels(sample_data$Bildungsabschluss);str(sample_data$Bildungsabschluss) \n", "table(sample_data$Bildungsabschluss)" ] }, { "cell_type": "code", "execution_count": 42, "id": "beca657c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 122 × 5
IDWohnortAlterBildungsabschlussGeschlecht
<int><fct><int><ord><fct>
1 1Potsdam 1950kein Abschluss m
3 3Potsdam 59Realschulabschluss oder gleichwertigm
7 7Potsdam 55Hauptschulabschluss m
8 8Berlin 51Hauptschulabschluss m
9 9Potsdam 60Hauptschulabschluss m
12 12Berlin 60Master m
13 13Potsdam 67kein Abschluss m
17 17Berlin 57Realschulabschluss oder gleichwertigm
18 18Potsdam 67kein Abschluss m
23 23Berlin 52Bachelor m
32 32Dallgow-Döberitz 58kein Abschluss m
35 35Potsdam 60kein Abschluss m
36 36Berlin 65Hauptschulabschluss m
38 38Berlin 60Master m
47 47Berlin 55Bachelor m
52 52Berlin 78Master m
65 65Potsdam 54Promotion m
72 72Berlin 63Abitur m
80 80Potsdam 66kein Abschluss m
86 86Berlin 63Hauptschulabschluss m
91 91Berlin 57Master m
96 96Potsdam 60Realschulabschluss oder gleichwertigm
106106Berlin 53kein Abschluss m
107107Potsdam 57Bachelor m
110110Berlin 63Hauptschulabschluss m
112112Berlin 56Realschulabschluss oder gleichwertigm
113113Berlin 54Bachelor m
115115Berlin 59Realschulabschluss oder gleichwertigm
119119Berlin 52Hauptschulabschluss m
122122Potsdam 55Abitur m
362362Potsdam 67Realschulabschluss oder gleichwertigm
379379Berlin 53Realschulabschluss oder gleichwertigm
380380Potsdam 64kein Abschluss m
384384Berlin 52Master m
389389Berlin 52Hauptschulabschluss m
396396Berlin 54Realschulabschluss oder gleichwertigm
409409Berlin 58Bachelor m
411411Berlin 53Abitur m
417417Potsdam 56Hauptschulabschluss m
425425Potsdam 52Abitur m
426426Potsdam 58Master m
432432Potsdam 62Bachelor m
433433Potsdam 74Abitur m
435435Berlin 53Promotion m
437437Berlin 54Hauptschulabschluss m
440440Berlin 68kein Abschluss m
446446Potsdam 67Bachelor m
452452Berlin 51Bachelor m
459459Potsdam 59Master m
461461Berlin 51Hauptschulabschluss m
468468Potsdam 81Hauptschulabschluss m
469469Berlin 53kein Abschluss m
472472Potsdam 65Bachelor m
474474Berlin 52Hauptschulabschluss m
480480Falkensee52Abitur m
487487Berlin 52Realschulabschluss oder gleichwertigm
488488Potsdam 56Abitur m
490490Berlin 54kein Abschluss m
493493Potsdam 54Realschulabschluss oder gleichwertigm
500500Berlin 69Realschulabschluss oder gleichwertigm
\n" ], "text/latex": [ "A data.frame: 122 × 5\n", "\\begin{tabular}{r|lllll}\n", " & ID & Wohnort & Alter & Bildungsabschluss & Geschlecht\\\\\n", " & & & & & \\\\\n", "\\hline\n", "\t1 & 1 & Potsdam & 1950 & kein Abschluss & m\\\\\n", "\t3 & 3 & Potsdam & 59 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t7 & 7 & Potsdam & 55 & Hauptschulabschluss & m\\\\\n", "\t8 & 8 & Berlin & 51 & Hauptschulabschluss & m\\\\\n", "\t9 & 9 & Potsdam & 60 & Hauptschulabschluss & m\\\\\n", "\t12 & 12 & Berlin & 60 & Master & m\\\\\n", "\t13 & 13 & Potsdam & 67 & kein Abschluss & m\\\\\n", "\t17 & 17 & Berlin & 57 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t18 & 18 & Potsdam & 67 & kein Abschluss & m\\\\\n", "\t23 & 23 & Berlin & 52 & Bachelor & m\\\\\n", "\t32 & 32 & Dallgow-Döberitz & 58 & kein Abschluss & m\\\\\n", "\t35 & 35 & Potsdam & 60 & kein Abschluss & m\\\\\n", "\t36 & 36 & Berlin & 65 & Hauptschulabschluss & m\\\\\n", "\t38 & 38 & Berlin & 60 & Master & m\\\\\n", "\t47 & 47 & Berlin & 55 & Bachelor & m\\\\\n", "\t52 & 52 & Berlin & 78 & Master & m\\\\\n", "\t65 & 65 & Potsdam & 54 & Promotion & m\\\\\n", "\t72 & 72 & Berlin & 63 & Abitur & m\\\\\n", "\t80 & 80 & Potsdam & 66 & kein Abschluss & m\\\\\n", "\t86 & 86 & Berlin & 63 & Hauptschulabschluss & m\\\\\n", "\t91 & 91 & Berlin & 57 & Master & m\\\\\n", "\t96 & 96 & Potsdam & 60 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t106 & 106 & Berlin & 53 & kein Abschluss & m\\\\\n", "\t107 & 107 & Potsdam & 57 & Bachelor & m\\\\\n", "\t110 & 110 & Berlin & 63 & Hauptschulabschluss & m\\\\\n", "\t112 & 112 & Berlin & 56 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t113 & 113 & Berlin & 54 & Bachelor & m\\\\\n", "\t115 & 115 & Berlin & 59 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t119 & 119 & Berlin & 52 & Hauptschulabschluss & m\\\\\n", "\t122 & 122 & Potsdam & 55 & Abitur & m\\\\\n", "\t⋮ & ⋮ & ⋮ & ⋮ & ⋮ & ⋮\\\\\n", "\t362 & 362 & Potsdam & 67 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t379 & 379 & Berlin & 53 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t380 & 380 & Potsdam & 64 & kein Abschluss & m\\\\\n", "\t384 & 384 & Berlin & 52 & Master & m\\\\\n", "\t389 & 389 & Berlin & 52 & Hauptschulabschluss & m\\\\\n", "\t396 & 396 & Berlin & 54 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t409 & 409 & Berlin & 58 & Bachelor & m\\\\\n", "\t411 & 411 & Berlin & 53 & Abitur & m\\\\\n", "\t417 & 417 & Potsdam & 56 & Hauptschulabschluss & m\\\\\n", "\t425 & 425 & Potsdam & 52 & Abitur & m\\\\\n", "\t426 & 426 & Potsdam & 58 & Master & m\\\\\n", "\t432 & 432 & Potsdam & 62 & Bachelor & m\\\\\n", "\t433 & 433 & Potsdam & 74 & Abitur & m\\\\\n", "\t435 & 435 & Berlin & 53 & Promotion & m\\\\\n", "\t437 & 437 & Berlin & 54 & Hauptschulabschluss & m\\\\\n", "\t440 & 440 & Berlin & 68 & kein Abschluss & m\\\\\n", "\t446 & 446 & Potsdam & 67 & Bachelor & m\\\\\n", "\t452 & 452 & Berlin & 51 & Bachelor & m\\\\\n", "\t459 & 459 & Potsdam & 59 & Master & m\\\\\n", "\t461 & 461 & Berlin & 51 & Hauptschulabschluss & m\\\\\n", "\t468 & 468 & Potsdam & 81 & Hauptschulabschluss & m\\\\\n", "\t469 & 469 & Berlin & 53 & kein Abschluss & m\\\\\n", "\t472 & 472 & Potsdam & 65 & Bachelor & m\\\\\n", "\t474 & 474 & Berlin & 52 & Hauptschulabschluss & m\\\\\n", "\t480 & 480 & Falkensee & 52 & Abitur & m\\\\\n", "\t487 & 487 & Berlin & 52 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t488 & 488 & Potsdam & 56 & Abitur & m\\\\\n", "\t490 & 490 & Berlin & 54 & kein Abschluss & m\\\\\n", "\t493 & 493 & Potsdam & 54 & Realschulabschluss oder gleichwertig & m\\\\\n", "\t500 & 500 & Berlin & 69 & Realschulabschluss oder gleichwertig & m\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 122 × 5\n", "\n", "| | ID <int> | Wohnort <fct> | Alter <int> | Bildungsabschluss <ord> | Geschlecht <fct> |\n", "|---|---|---|---|---|---|\n", "| 1 | 1 | Potsdam | 1950 | kein Abschluss | m |\n", "| 3 | 3 | Potsdam | 59 | Realschulabschluss oder gleichwertig | m |\n", "| 7 | 7 | Potsdam | 55 | Hauptschulabschluss | m |\n", "| 8 | 8 | Berlin | 51 | Hauptschulabschluss | m |\n", "| 9 | 9 | Potsdam | 60 | Hauptschulabschluss | m |\n", "| 12 | 12 | Berlin | 60 | Master | m |\n", "| 13 | 13 | Potsdam | 67 | kein Abschluss | m |\n", "| 17 | 17 | Berlin | 57 | Realschulabschluss oder gleichwertig | m |\n", "| 18 | 18 | Potsdam | 67 | kein Abschluss | m |\n", "| 23 | 23 | Berlin | 52 | Bachelor | m |\n", "| 32 | 32 | Dallgow-Döberitz | 58 | kein Abschluss | m |\n", "| 35 | 35 | Potsdam | 60 | kein Abschluss | m |\n", "| 36 | 36 | Berlin | 65 | Hauptschulabschluss | m |\n", "| 38 | 38 | Berlin | 60 | Master | m |\n", "| 47 | 47 | Berlin | 55 | Bachelor | m |\n", "| 52 | 52 | Berlin | 78 | Master | m |\n", "| 65 | 65 | Potsdam | 54 | Promotion | m |\n", "| 72 | 72 | Berlin | 63 | Abitur | m |\n", "| 80 | 80 | Potsdam | 66 | kein Abschluss | m |\n", "| 86 | 86 | Berlin | 63 | Hauptschulabschluss | m |\n", "| 91 | 91 | Berlin | 57 | Master | m |\n", "| 96 | 96 | Potsdam | 60 | Realschulabschluss oder gleichwertig | m |\n", "| 106 | 106 | Berlin | 53 | kein Abschluss | m |\n", "| 107 | 107 | Potsdam | 57 | Bachelor | m |\n", "| 110 | 110 | Berlin | 63 | Hauptschulabschluss | m |\n", "| 112 | 112 | Berlin | 56 | Realschulabschluss oder gleichwertig | m |\n", "| 113 | 113 | Berlin | 54 | Bachelor | m |\n", "| 115 | 115 | Berlin | 59 | Realschulabschluss oder gleichwertig | m |\n", "| 119 | 119 | Berlin | 52 | Hauptschulabschluss | m |\n", "| 122 | 122 | Potsdam | 55 | Abitur | m |\n", "| ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |\n", "| 362 | 362 | Potsdam | 67 | Realschulabschluss oder gleichwertig | m |\n", "| 379 | 379 | Berlin | 53 | Realschulabschluss oder gleichwertig | m |\n", "| 380 | 380 | Potsdam | 64 | kein Abschluss | m |\n", "| 384 | 384 | Berlin | 52 | Master | m |\n", "| 389 | 389 | Berlin | 52 | Hauptschulabschluss | m |\n", "| 396 | 396 | Berlin | 54 | Realschulabschluss oder gleichwertig | m |\n", "| 409 | 409 | Berlin | 58 | Bachelor | m |\n", "| 411 | 411 | Berlin | 53 | Abitur | m |\n", "| 417 | 417 | Potsdam | 56 | Hauptschulabschluss | m |\n", "| 425 | 425 | Potsdam | 52 | Abitur | m |\n", "| 426 | 426 | Potsdam | 58 | Master | m |\n", "| 432 | 432 | Potsdam | 62 | Bachelor | m |\n", "| 433 | 433 | Potsdam | 74 | Abitur | m |\n", "| 435 | 435 | Berlin | 53 | Promotion | m |\n", "| 437 | 437 | Berlin | 54 | Hauptschulabschluss | m |\n", "| 440 | 440 | Berlin | 68 | kein Abschluss | m |\n", "| 446 | 446 | Potsdam | 67 | Bachelor | m |\n", "| 452 | 452 | Berlin | 51 | Bachelor | m |\n", "| 459 | 459 | Potsdam | 59 | Master | m |\n", "| 461 | 461 | Berlin | 51 | Hauptschulabschluss | m |\n", "| 468 | 468 | Potsdam | 81 | Hauptschulabschluss | m |\n", "| 469 | 469 | Berlin | 53 | kein Abschluss | m |\n", "| 472 | 472 | Potsdam | 65 | Bachelor | m |\n", "| 474 | 474 | Berlin | 52 | Hauptschulabschluss | m |\n", "| 480 | 480 | Falkensee | 52 | Abitur | m |\n", "| 487 | 487 | Berlin | 52 | Realschulabschluss oder gleichwertig | m |\n", "| 488 | 488 | Potsdam | 56 | Abitur | m |\n", "| 490 | 490 | Berlin | 54 | kein Abschluss | m |\n", "| 493 | 493 | Potsdam | 54 | Realschulabschluss oder gleichwertig | m |\n", "| 500 | 500 | Berlin | 69 | Realschulabschluss oder gleichwertig | m |\n", "\n" ], "text/plain": [ " ID Wohnort Alter Bildungsabschluss Geschlecht\n", "1 1 Potsdam 1950 kein Abschluss m \n", "3 3 Potsdam 59 Realschulabschluss oder gleichwertig m \n", "7 7 Potsdam 55 Hauptschulabschluss m \n", "8 8 Berlin 51 Hauptschulabschluss m \n", "9 9 Potsdam 60 Hauptschulabschluss m \n", "12 12 Berlin 60 Master m \n", "13 13 Potsdam 67 kein Abschluss m \n", "17 17 Berlin 57 Realschulabschluss oder gleichwertig m \n", "18 18 Potsdam 67 kein Abschluss m \n", "23 23 Berlin 52 Bachelor m \n", "32 32 Dallgow-Döberitz 58 kein Abschluss m \n", "35 35 Potsdam 60 kein Abschluss m \n", "36 36 Berlin 65 Hauptschulabschluss m \n", "38 38 Berlin 60 Master m \n", "47 47 Berlin 55 Bachelor m \n", "52 52 Berlin 78 Master m \n", "65 65 Potsdam 54 Promotion m \n", "72 72 Berlin 63 Abitur m \n", "80 80 Potsdam 66 kein Abschluss m \n", "86 86 Berlin 63 Hauptschulabschluss m \n", "91 91 Berlin 57 Master m \n", "96 96 Potsdam 60 Realschulabschluss oder gleichwertig m \n", "106 106 Berlin 53 kein Abschluss m \n", "107 107 Potsdam 57 Bachelor m \n", "110 110 Berlin 63 Hauptschulabschluss m \n", "112 112 Berlin 56 Realschulabschluss oder gleichwertig m \n", "113 113 Berlin 54 Bachelor m \n", "115 115 Berlin 59 Realschulabschluss oder gleichwertig m \n", "119 119 Berlin 52 Hauptschulabschluss m \n", "122 122 Potsdam 55 Abitur m \n", " \n", "362 362 Potsdam 67 Realschulabschluss oder gleichwertig m \n", "379 379 Berlin 53 Realschulabschluss oder gleichwertig m \n", "380 380 Potsdam 64 kein Abschluss m \n", "384 384 Berlin 52 Master m \n", "389 389 Berlin 52 Hauptschulabschluss m \n", "396 396 Berlin 54 Realschulabschluss oder gleichwertig m \n", "409 409 Berlin 58 Bachelor m \n", "411 411 Berlin 53 Abitur m \n", "417 417 Potsdam 56 Hauptschulabschluss m \n", "425 425 Potsdam 52 Abitur m \n", "426 426 Potsdam 58 Master m \n", "432 432 Potsdam 62 Bachelor m \n", "433 433 Potsdam 74 Abitur m \n", "435 435 Berlin 53 Promotion m \n", "437 437 Berlin 54 Hauptschulabschluss m \n", "440 440 Berlin 68 kein Abschluss m \n", "446 446 Potsdam 67 Bachelor m \n", "452 452 Berlin 51 Bachelor m \n", "459 459 Potsdam 59 Master m \n", "461 461 Berlin 51 Hauptschulabschluss m \n", "468 468 Potsdam 81 Hauptschulabschluss m \n", "469 469 Berlin 53 kein Abschluss m \n", "472 472 Potsdam 65 Bachelor m \n", "474 474 Berlin 52 Hauptschulabschluss m \n", "480 480 Falkensee 52 Abitur m \n", "487 487 Berlin 52 Realschulabschluss oder gleichwertig m \n", "488 488 Potsdam 56 Abitur m \n", "490 490 Berlin 54 kein Abschluss m \n", "493 493 Potsdam 54 Realschulabschluss oder gleichwertig m \n", "500 500 Berlin 69 Realschulabschluss oder gleichwertig m " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sample_data_ue50_m <- sample_data[sample_data$Alter > 50 & sample_data$Geschlecht == \"m\",] #Auswahl der männlichen Teilnehmer über 50\n", "sample_data_ue50_m" ] }, { "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 ist bereits Teil Ihrer Installation, Sie muss daher lediglich geladen werden. Dies geschieht in R über die Funktion `library()`. Als Übergabeparameter wird der Name der zu ladenden Bibliothek in Form einer 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": 43, "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 : dbl+lbl [1:2083] 2, 6, 6, 6, 2, 6, 3, 6, 3, 7, 2, 3, 6, 3, 3, 5, 2, 3,...\n", " ..@ label : chr \"Akademischer Abschluss (Art)\"\n", " ..@ format.spss : chr \"F11.0\"\n", " ..@ display_width: int 3\n", " ..@ 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 : dbl+lbl [1:2083] 7, 7, 5, 7, 9, 9, 3, 7, 3, 7, 3, 3, 9, 9, 3, 9, 3, 9,...\n", " ..@ label : chr \"Funktion\"\n", " ..@ format.spss : chr \"F11.0\"\n", " ..@ display_width: int 4\n", " ..@ 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 : dbl+lbl [1:2083] 13, 9, 13, 13, 15, 3, 7, 13, 15, 3, 13, 4, 4, ...\n", " ..@ label : chr \"Fach\"\n", " ..@ format.spss : chr \"F11.0\"\n", " ..@ display_width: int 13\n", " ..@ 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 : dbl+lbl [1:2083] 123, 170, 123, 134, 306, 10, 117, 134, 77, 32, 134...\n", " ..@ label : chr \"Fach in Fächergruppe\"\n", " ..@ format.spss : chr \"F11.0\"\n", " ..@ display_width: int 12\n", " ..@ 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 : dbl+lbl [1:2083] 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...\n", " ..@ label : chr \"Universität oder andere Hochschule mit Promotionsrecht\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_1107 : dbl+lbl [1:2083] 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...\n", " ..@ label : chr \"Fachhochschule oder andere Hochschule ohne Promotionsrecht\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_1108 : dbl+lbl [1:2083] 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...\n", " ..@ label : chr \"Kunst- oder Musikhochschule\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5607 : dbl+lbl [1:2083] 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...\n", " ..@ label : chr \"Außeruniversitäres Forschungsinstitut (z.B. Leibniz, Helmholtz, Fraunhofer, Max Planck)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_1113 : dbl+lbl [1:2083] 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...\n", " ..@ label : chr \"Sonstige, und zwar:\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 9, 8, 8, 8, 4, 1, 1, 11, 1, 1, 1, 1, 1, ...\n", " ..@ label : chr \"Kontrollfrage Bundesland\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,...\n", " ..@ label : chr \"Forschung%s%\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_4997 : dbl+lbl [1:2083] 15, 30, 0, 5, 70, 5, 90, 2, 40, 50, 15...\n", " ..@ label : chr \"Forschung%s%\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0\n", " .. ..- attr(*, \"names\")= chr \"\"\n", " $ v_5003 : dbl+lbl [1:2083] 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1,...\n", " ..@ label : chr \"Lehre (inklusive Organisation v. Lehre, Beratung v. Studierenden)%s%\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5004 : dbl+lbl [1:2083] 60, 40, 100, 90, 0, 60, 10, 15, 40, 40, 40...\n", " ..@ label : chr \"Lehre (inklusive Organisation v. Lehre, Beratung v. Studierenden)%s%\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0\n", " .. ..- attr(*, \"names\")= chr \"\"\n", " $ v_5005 : dbl+lbl [1:2083] 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1,...\n", " ..@ label : chr \"Wissenschaftsadministration (z.B. Drittmitteleinwerbung, Projektverwaltung)%s%\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5006 : dbl+lbl [1:2083] 25, 20, 0, 0, 10, 0, 0, 80, 15, 5, 40, 40, 0, 1...\n", " ..@ label : chr \"Wissenschaftsadministration (z.B. Drittmitteleinwerbung, Projektverwaltung)%s%\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0\n", " .. ..- attr(*, \"names\")= chr \"\"\n", " $ v_5007 : dbl+lbl [1:2083] 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1,...\n", " ..@ label : chr \"Wissenschaftskommunikation (z.B. Öffentlichkeitsarbeit, Vernetzung)%s%\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5008 : dbl+lbl [1:2083] 0, 10, 0, 5, 20, 0, 0, 3, 5, 3, 5, 10, 10, ...\n", " ..@ label : chr \"Wissenschaftskommunikation (z.B. Öffentlichkeitsarbeit, Vernetzung)%s%\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0\n", " .. ..- attr(*, \"names\")= chr \"\"\n", " $ v_5009 : dbl+lbl [1:2083] 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0,...\n", " ..@ label : chr \"Andere Tätigkeitsbereiche%s%\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5010 : dbl+lbl [1:2083] 0, 0, 0, 0, 0, 35, 0, 0, 0, 2, 0, 5, 10, ...\n", " ..@ label : chr \"Andere Tätigkeitsbereiche%s%\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0\n", " .. ..- attr(*, \"names\")= chr \"\"\n", " $ v_2707 : dbl+lbl [1:2083] 3, 5, 5, 4, 6, 6, 5, 6, 3, 3, 5, 3, 6, 5, 6, 3, 5, 6,...\n", " ..@ label : chr \"Soziale Netzwerke (z.B. Facebook, Google+)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 3, 3, 1, 2, 6, 6, 2, 2, 1, 6, 3, 6, 1, 6, 3, 7, 2,...\n", " ..@ label : chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 3, 6, 4, 1, 5, 4, 2, 6, 6, 4, 3, 1, 3, 6, 4, 3, 1,...\n", " ..@ label : chr \"Videokonferenz/VoIP (z.B. Skype, Adobe Connect)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 6, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 6, 6,...\n", " ..@ label : chr \"Microblogs (z.B. Twitter)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 3, 6, 6, 3, 4, 6, 6, 3, 2, 6, 4, 6, 3, 6, 3, 6, 6,...\n", " ..@ label : chr \"Weblogs\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2,...\n", " ..@ label : chr \"Wikipedia\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 6, 6, 2, 6, 3, 6, 2, 2, 6, 1, 3, 1, 1, 4, 2, 1, 1,...\n", " ..@ label : chr \"andere Wikis (z.B. Firmenwiki, fachspezifische Wikis etc.)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 2, 3, 6, 3, 2, 3, 6, 3, 2, 3, 3, 6, 3, 6, 3, 5, 3,...\n", " ..@ label : chr \"Content Sharing/Cloud-Dienste (z.B. Dropbox, Slideshare)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 2, 6, 6, 5, 6, 6, 6, 7, 6, 6, 3, 6, 1, 6, 3, 7, 6,...\n", " ..@ label : chr \"Online-Texteditoren (z.B. EtherPad, Google Docs)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 3, 6, 6, 3, 2, 3, 6, 3, 3, 6, 3, 3, 3, 5, 3, 3, 2,...\n", " ..@ label : chr \"Internetforen\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 1, 6, 2, 3, 3, 2, 6, 2, 3, 1, 3, 6, 1, 1, 2, 3, 6,...\n", " ..@ label : chr \"Mailinglisten\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 3, 6, 6, 6, 5, 4, 2, 5, 6, 5, 3, 6, 3, 3, 4, 5, 3,...\n", " ..@ label : chr \"Chat/Instant Messaging (z.B. Skype, ICQ)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 2, 3, 1, 3, 3, 1, 2, 2, 2, 1, 2, 1, 1, 1, 6, 6, 7,...\n", " ..@ label : chr \"Online-Archive/Datenbanken (z.B. Deutsche Digitale Bibliothek, Arxiv.org)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 1, 2, 6, 6, 3, 6, 6, 6, 2, 6, 1, 3, 1, 1, 2, 1, 7, 6,...\n", " ..@ label : chr \"Literaturverwaltung (z.B. Mendeley, Zotero)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 6, 6, 6, 6, 6, 7, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 7, 6,...\n", " ..@ label : chr \"Social Bookmarking Services (z.B. Delicious, Bibsonomy)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 6, 3, 4, 3, 6, 5, 4, 3, 3, 4, 3, 3, 3, 6, 3, 5, 6,...\n", " ..@ label : chr \"Video/Foto Community-Portale (z.B. YouTube, Flickr)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 1, 1, 6, 6, 6, 7, 6, 6, 1, 2, 1, 6, 1, 1, 6, 1, 7, 1,...\n", " ..@ label : chr \"Lernmanagementsysteme (z.B. OLAT/OPAL, Moodle)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 2, 6, 6, 5, 7, 7, 6, 3, 6, 2, 3, 1, 6, 6, 7, 7, 7,...\n", " ..@ label : chr \"Terminierungs- und Koordinationstools (z.B. Foodle, Asana, Trello)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N...\n", " ..@ label : chr \"lesen anderer Tweets\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5034 : dbl+lbl [1:2083] NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N...\n", " ..@ label : chr \"eigene Beiträge (unter eigenem Account) posten\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_447 : dbl+lbl [1:2083] NA, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N...\n", " ..@ label : chr \"Beiträge anderer Personen kommentieren/weiterleiten\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5039 : dbl+lbl [1:2083] 1, 1, NA, NA, 1, 1, NA, NA, 1, 1, NA, 1, NA, ...\n", " ..@ label : chr \"Beiträge anderer Blogger lesen\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5040 : dbl+lbl [1:2083] 1, 0, NA, NA, 0, 0, NA, NA, 0, 0, NA, 0, NA, ...\n", " ..@ label : chr \"eigene Blogbeiträge verfassen\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5041 : dbl+lbl [1:2083] 0, 0, NA, NA, 0, 1, NA, NA, 0, 1, NA, 1, NA, ...\n", " ..@ label : chr \"Beiträge anderer Blogger kommentieren\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5045 : dbl+lbl [1:2083] NA, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...\n", " ..@ label : chr \"Artikel lesen\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5046 : dbl+lbl [1:2083] NA, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, ...\n", " ..@ label : chr \"Einträge verfassen und bearbeiten\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_448 : dbl+lbl [1:2083] NA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...\n", " ..@ label : chr \"kommentieren\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5050 : dbl+lbl [1:2083] 1, NA, NA, 1, NA, 1, NA, 1, 1, NA, 1, 1, 1, ...\n", " ..@ label : chr \"lesen\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5051 : dbl+lbl [1:2083] 0, NA, NA, 0, NA, 0, NA, 0, 0, NA, 0, 1, 0, ...\n", " ..@ label : chr \"Wiki-Seiten erstellen und bearbeiten\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_449 : dbl+lbl [1:2083] 0, NA, NA, 0, NA, 0, NA, 0, 0, NA, 0, 0, 0, ...\n", " ..@ label : chr \"kommentieren\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5062 : dbl+lbl [1:2083] 1, 1, NA, NA, 1, 1, 1, NA, 1, 1, NA, 1, 1, ...\n", " ..@ label : chr \"Beiträge lesen\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5063 : dbl+lbl [1:2083] 1, 1, NA, NA, 0, 1, 0, NA, 0, 0, NA, 1, 0, ...\n", " ..@ label : chr \"Beiträge verfassen\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5064 : dbl+lbl [1:2083] 1, 0, NA, NA, 0, 1, 0, NA, 0, 1, NA, 1, 0, ...\n", " ..@ label : chr \"Beiträge anderer Nutzer beantworten\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5056 : dbl+lbl [1:2083] 1, NA, 1, 1, 1, NA, NA, 1, 1, 1, 1, 1, 1, ...\n", " ..@ label : chr \"Videos/Fotos ansehen\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5057 : dbl+lbl [1:2083] 0, NA, 0, 0, 0, NA, NA, 0, 1, 0, 0, 0, 1, ...\n", " ..@ label : chr \"Videos/Fotos hoch- bzw. runterladen\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5058 : dbl+lbl [1:2083] 0, NA, 0, 0, 0, NA, NA, 0, 0, 0, 0, 0, 0, ...\n", " ..@ label : chr \"Videos/Fotos kommentieren\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_441 : dbl+lbl [1:2083] 1, NA, NA, 1, NA, NA, NA, NA, 1, 0, NA, 1, NA, N...\n", " ..@ label : chr \"Kontakte mit Kolleg/innen suchen und pflegen\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_442 : dbl+lbl [1:2083] 0, NA, NA, 0, NA, NA, NA, NA, 1, 0, NA, 1, NA, N...\n", " ..@ label : chr \"informieren was im eigenen Netzwerk aktuell passiert\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_443 : dbl+lbl [1:2083] 1, NA, NA, 0, NA, NA, NA, NA, 1, 1, NA, 1, NA, N...\n", " ..@ label : chr \"persönliche Nachrichten verschicken\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_444 : dbl+lbl [1:2083] 1, NA, NA, 0, NA, NA, NA, NA, 0, 1, NA, 1, NA, N...\n", " ..@ label : chr \"Beiträge/Kommentare schreiben\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_445 : dbl+lbl [1:2083] 1, NA, NA, 0, NA, NA, NA, NA, 0, 0, NA, 1, NA, N...\n", " ..@ label : chr \"Links und Informationen posten\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_446 : dbl+lbl [1:2083] 1, NA, NA, 0, NA, NA, NA, NA, 0, 0, NA, 1, NA, N...\n", " ..@ label : chr \"Austausch mit Kolleg/innen (z.B. in Gruppen)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5072 : dbl+lbl [1:2083] 3, NA, NA, 6, NA, NA, NA, NA, 3, 3, NA, 1, NA, N...\n", " ..@ label : chr \"Soziale Netzwerke (z.B. Facebook, Google+)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 4, 4, 4, 2, NA, NA, 3, 5, 6, NA, 2, NA, ...\n", " ..@ label : chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 4, 3, NA, 6, 5, NA, 6, 6, NA, NA, 6, 4, 6, ...\n", " ..@ label : chr \"Videokonferenz/VoIP (z.B. Skype, Adobe Connect)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] NA, 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N...\n", " ..@ label : chr \"Microblogs (z.B. Twitter)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 5, NA, NA, 3, 3, NA, NA, 2, 6, NA, 4, NA, ...\n", " ..@ label : chr \"Weblogs\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] NA, 3, 3, 4, 3, 4, 3, 4, 2, 3, 4, 1, 3, ...\n", " ..@ label : chr \"Wikipedia\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 4, NA, NA, 6, NA, 6, NA, 5, 3, NA, 5, 4, 4, ...\n", " ..@ label : chr \"andere Wikis (z.B. Firmenwiki, fachspezifische Wikis etc.)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 2, 5, NA, 4, 3, 1, NA, 2, 2, 3, 1, NA, ...\n", " ..@ label : chr \"Content Sharing/Cloud-Dienste (z.B. Dropbox, Slideshare)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 4, 5, NA, NA, NA, NA, NA, NA, NA, NA, NA, 3, NA, ...\n", " ..@ label : chr \"Online-Texteditoren (z.B. EtherPad, Google Docs)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 4, 3, NA, NA, 6, 2, 4, NA, 2, 5, NA, 2, 4, ...\n", " ..@ label : chr \"Internetforen\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 4, 4, NA, 6, 5, 2, 5, NA, 2, 6, 1, 4, NA, ...\n", " ..@ label : chr \"Mailinglisten\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 4, 4, NA, NA, NA, NA, 6, 6, NA, NA, NA, 1, NA, ...\n", " ..@ label : chr \"Chat/Instant Messaging (z.B. Skype, ICQ)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 2, 2, 4, 4, 5, 3, 5, 5, 3, 4, 6, 4, 3, ...\n", " ..@ label : chr \"Online-Archive/Datenbanken (z.B. Deutsche Digitale Bibliothek, Arxiv.org)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 3, 3, NA, NA, 1, NA, NA, NA, 4, NA, 4, 3, 3, ...\n", " ..@ label : chr \"Literaturverwaltung (z.B. Mendeley, Zotero)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N...\n", " ..@ label : chr \"Social Bookmarking Services (z.B. Delicious, Bibsonomy)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 4, NA, 2, 5, 4, NA, NA, 5, 4, 4, 6, 3, 6, ...\n", " ..@ label : chr \"Video/Foto Community-Portale (z.B. YouTube, Flickr)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 1, 4, NA, NA, NA, NA, NA, NA, 6, 5, 2, NA, 1, ...\n", " ..@ label : chr \"Lernmanagementsysteme (z.B. OLAT/OPAL, Moodle)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 2, 4, NA, NA, NA, NA, NA, NA, 2, NA, 5, 3, 4, N...\n", " ..@ label : chr \"Terminierungs- und Koordinationstools (z.B. Foodle, Asana, Trello)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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 : dbl+lbl [1:2083] 0, NA, NA, 0, NA, NA, NA, NA, 0, 0, NA, 0, NA, N...\n", " ..@ label : chr \"Soziale Netzwerke (z.B. Facebook, Google+) (Lehre)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5126 : dbl+lbl [1:2083] 0, NA, NA, 0, NA, NA, NA, NA, 0, 0, NA, 1, NA, N...\n", " ..@ label : chr \"Soziale Netzwerke (z.B. Facebook, Google+) (Forschung)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5143 : dbl+lbl [1:2083] 1, NA, NA, 0, NA, NA, NA, NA, 0, 0, NA, 1, NA, N...\n", " ..@ label : chr \"Soziale Netzwerke (z.B. Facebook, Google+) (Wissenschafts- kommunikation )\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5160 : dbl+lbl [1:2083] 1, NA, NA, 0, NA, NA, NA, NA, 0, 0, NA, 0, NA, N...\n", " ..@ label : chr \"Soziale Netzwerke (z.B. Facebook, Google+) (Wissenschafts- administration)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5110 : dbl+lbl [1:2083] 0, 0, 0, 0, 0, NA, NA, 0, 0, 0, NA, 0, NA, ...\n", " ..@ label : chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu) (Lehre)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5127 : dbl+lbl [1:2083] 0, 0, 0, 0, 0, NA, NA, 0, 1, 0, NA, 1, NA, ...\n", " ..@ label : chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu) (Forschung)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5144 : dbl+lbl [1:2083] 0, 0, 0, 0, 0, NA, NA, 1, 1, 0, NA, 1, NA, ...\n", " ..@ label : chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu) (Wissenschafts- kommunikation )\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5161 : dbl+lbl [1:2083] 0, 1, 0, 0, 1, NA, NA, 0, 0, 1, NA, 1, NA, ...\n", " ..@ label : chr \"Wissenschaftliche/Berufliche Netzwerke (z.B. Xing, Academia.edu) (Wissenschafts- administration)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ labels : Named num 0 1\n", " .. ..- attr(*, \"names\")= chr \"not quoted\" \"quoted\"\n", " $ v_5111 : dbl+lbl [1:2083] 0, 0, NA, 0, 0, NA, 0, 0, NA, NA, 0, 0, 0, ...\n", " ..@ label : chr \"Videokonferenz/VoIP (z.B. Skype, Adobe Connect) (Lehre)\"\n", " ..@ format.spss: chr \"F11.0\"\n", " ..@ 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", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 6 × 476
za_nrversiondoilfdnv_1054v_1055v_1056v_1068v_73v_1070Anteil_Lehre_katAnteil_Wiss.admin_katAnteil_Wiss.komm_katAnteil_and_Taetigk_katv_gew_grupv_gewichte_01v_privconv_comanxv_comselfv_curiosity
<dbl><chr><chr><dbl><dbl+lbl><chr><dbl+lbl><chr><dbl+lbl><chr><dbl+lbl><dbl+lbl><dbl+lbl><dbl+lbl><dbl><dbl><dbl+lbl><dbl+lbl><dbl+lbl><dbl+lbl>
159721.0.0 (2015-11-06)doi:10.4232/1.12262412-997-9913-99 420022.04474392.251.503.003.00
259721.0.0 (2015-11-06)doi:10.4232/1.12262446-997-99 9-99 321010.83714132.501.503.503.75
359721.0.0 (2015-11-06)doi:10.4232/1.12262466-995-9913-99 600022.04474393.252.002.753.25
459721.0.0 (2015-11-06)doi:10.4232/1.12262486-997-9913-99 501022.04474393.001.001.252.25
559721.0.0 (2015-11-06)doi:10.4232/1.12262772-999-9915Informationswissenschaft012010.83714132.001.754.003.25
659721.0.0 (2015-11-06)doi:10.4232/1.12262876-999-99 3-99 400310.83714134.001.003.004.75
\n" ], "text/latex": [ "A data.frame: 6 × 476\n", "\\begin{tabular}{r|lllllllllllllllllllll}\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", "\\hline\n", "\t1 & 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", "\t2 & 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", "\t3 & 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", "\t4 & 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", "\t5 & 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", "\t6 & 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", "A data.frame: 6 × 476\n", "\n", "| | za_nr <dbl> | version <chr> | doi <chr> | lfdn <dbl> | v_1054 <dbl+lbl> | v_1055 <chr> | v_1056 <dbl+lbl> | v_1068 <chr> | v_73 <dbl+lbl> | v_1070 <chr> | ⋯ ⋯ | Anteil_Lehre_kat <dbl+lbl> | Anteil_Wiss.admin_kat <dbl+lbl> | Anteil_Wiss.komm_kat <dbl+lbl> | Anteil_and_Taetigk_kat <dbl+lbl> | v_gew_grup <dbl> | v_gewichte_01 <dbl> | v_privcon <dbl+lbl> | v_comanx <dbl+lbl> | v_comself <dbl+lbl> | v_curiosity <dbl+lbl> |\n", "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", "| 1 | 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", "| 2 | 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", "| 3 | 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", "| 4 | 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", "| 5 | 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", "| 6 | 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": [ "#Laden der Bibliothek haven mit der Funktionalität zum Arbeiten mit SPSS-Dateien\n", "#install.packages(\"haven\") #Falls die Bibliothek bei Ihnen doch nicht verfügbar sein sollte, ist eine Installtion mit der auskommentierten Anweisung möglich.\n", "library(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": 44, "id": "buried-stage", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " dbl+lbl [1:2083] 4, 3, 6, 5, 0, 4, 1, 2, 3, 3, 3, 1, 3, 5, 3, 0, 0, 2, 2, ...\n", " @ label : chr \"Anteil Lehre kategorisiert\"\n", " @ format.spss : chr \"F2.0\"\n", " @ display_width: int 18\n", " @ 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." ] }, { "cell_type": "markdown", "id": "795839b3", "metadata": {}, "source": [ "# Ergänzung: Ausgaben \"beschriften\"\n", "In der Konsultation kam die Frage danach auf, wie einzelne Ausgaben beschriftet werden können, um die Übersicht wahren zu können. Eine einfache Bildschirmausgabe kann mit der Funktion `print` erzeugt werden (z.B. `print(\"Hello World\")`. Allerdings kann die Funktion nicht mehrere Werte oder Variablen gleichzeitig verarbeiten. Besser geeignet ist in diesem Fall daher die Funktion `cat` (von concatenating), die die verschiedenen Parameter zu einer Ausgabe zusammenfügt. Die Funktion erzeugt keinen Zeilenumbruch, daher muss dieser bei mehreren aufeinander folgenden Ausgaben als eigener Parameter mit übergeben werden (Zeilenumbruch: `\\n`)." ] }, { "cell_type": "code", "execution_count": 45, "id": "e4a4ff4e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1] \"Eine einfache Bildschirmausgabe erzeugen mit print\"\n", "Ergebnis Addition: 7 \n", "Ergebnis Subtraktion: 3 \n", "Ergebnis Multiplikation: 10 \n", "Ergebnis Division: 2.5 \n", "Ergebnis komplexerer Berechnung mit Klammern: 21 \n" ] } ], "source": [ "print(\"Eine einfache Bildschirmausgabe erzeugen mit print\")\n", "cat(\"Ergebnis Addition:\", 5+2, \"\\n\") #Mehrere Ausgabewerte verbinden (z.B. Beschriftung der Ausgabe)\n", "cat(\"Ergebnis Subtraktion:\",5-2, \"\\n\") #Subtraktion\n", "cat(\"Ergebnis Multiplikation:\",5*2, \"\\n\") #Multiplikation\n", "cat(\"Ergebnis Division:\",5/2, \"\\n\") #Division\n", "cat(\"Ergebnis komplexerer Berechnung mit Klammern:\",(5+2)*(5-2), \"\\n\") #Berechnungen mit Klammern" ] } ], "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.3" }, "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 }