Politikwissenschaftliche Statistik mit R. Session 1: Einführung und Grundlagen (2023)

Politikwissenschaftliche Statistik mit R

  • (0) Willkommen
  • (1) Grundlagen
  • (3) Aufzeichnungen
  • (4) Variablen
  • (5) Univariate Maße
  • (6) Visualisierung I
  • (7) Bivariate Maße
  • (8) Lineare Regression
  • (9) Visualisierung II
  • (10) Multiple Regression
  • (11) Logistische Regression
  • (12) Faktorenanalyse
  • (13) Visualisierung III
  • (14) Hilfe

Christoph Garwe, Philipp Meyer, Laura Brune y Christoph Hönnige

Institut für Politikwissenschaft, Leibniz Universität Hannover

') });

Willkommen zu dieser Einführung in die politikwissenschaftliche Statistik.R! In dieser ersten Sitzung werden wir:

  1. kenne das Programm
  2. Erfahren Sie, wie Sie es installieren und bedienen
  3. Erstellen und manipulieren Sie Objekte und Klassen.
  4. Laden Sie Funktionen und Pakete herunter und wenden Sie sie an.

Rist ein leistungsstarkes statistisches Datenanalyseprogramm, das heute in wissenschaftlichen Anwendungen weit verbreitet ist. Sein besonderer Vorteil gegenüber anderen Standardprogrammen ist seine Flexibilität. Zum einen erhält es dies durch seine Paketstruktur. Verschiedene genannte Pakete (englPakete) sind speziell für bestimmte Anwendungen konzipiert. Sie laden nur dann auf, wenn Sie sie brauchen. Für fast jeden Zweck, den man sich zwischenzeitlich vorstellen kann, liegenR-Pakete vor. Seine Programmiersprache verleiht ihm außerdem Flexibilität. Um genau zu sein, ist esReigentlich eine (statistische) Programmiersprache, kein Statistikprogramm. Herkömmliche Statistikprogramme enthalten immer nur eingeschränkte Anwendungsmöglichkeiten, die von der Entwicklerfirma vorgegeben werden. Stattdessen gewährtRGrundsätzlich unbegrenzte Anwendungsmöglichkeiten.

Die Pakete werden nicht von einer zentralen Softwarefirma entwickelt, sondern von einer Vielzahl von Anwendern weltweit. Vorteile davonRder Intelligenz des Schwarms, während dieMittelgruppe Rübernimmt die Qualitätssicherung durch Überprüfung und Genehmigung neuer Pakete. Ebenso können Sie Schwarmintelligenz in einer Vielzahl von Hilfeforen wie zPaketüberflussnutzen, wo Hilfe und Lösungen angeboten werden. Oft hilft auch eine Google-Suche.

Ein weiterer Vorteil (insbesondere für Studenten) ist dasREs ist als Open-Source-Programm frei verfügbar. Es wird von der R Foundation for Statistical Computing über das CRAN (Comprehensive R Archive Network,https://cran.r-project.org/) zum Download bereit. Inzwischen trifft er sichRStudioZusätzlich steht kostenlos eine professionelle Oberfläche zur Verfügung, die die Bedienung deutlich vereinfacht.

Diese Vorteile kommen jedoch nicht ohne Nachteile: R-Code gilt als recht anspruchsvoll, und vieles erscheint auf den ersten Blick nicht besonders intuitiv. Außerdem ist esREs unterscheidet zwischen Groß- und Kleinschreibung (es wird zwischen Groß- und Kleinschreibung unterschieden) und verzeiht keine Tippfehler. Wenn etwas nicht (genau) richtig geschrieben ist, führt dies zu einer Fehlermeldung oder (schlimmer) zu unerwünschten oder unbemerkten Datenmanipulationen. hat damit zu tunRbasiert auf der Programmiersprache S. Damit umzugehen lernt manRdurch eine steile Lernkurve gekennzeichnet. Das heißt auch: Es ist ganz normal, wenn man etwas nicht gleich versteht. Gib nicht auf, es wird besser!

Ziel dieses Kurses ist die Vermittlung eines GrundverständnissesRsowie alle für den Studiengang relevanten Anwendungen der statistischen Datenanalyse. So können Sie den Code, den Sie auf diese Weise lernen, für Ihre eigene Arbeit verwenden (ich vermeide es, hier "kopieren" zu sagen). Ein grundlegendes Verständnis des Codes und wie und warum er verwendet wird, ist jedoch unerlässlich. Dies sollte zunächst im Fokus stehen.

Damit SieRauf Ihrem Computer müssen Sie es herunterladen und installieren. Gehen Sie darauf zuhttps://cran.r-project.org/und laden Sie die neueste Version für Ihr Betriebssystem (Linux, MacOS oder Windows) herunter. Wählen Sie einen möglichst wohnortnahen Standort (in Hannover, den Universitäten Göttingen oder Münster). Dann R installieren. Jetzt kann R geöffnet und bedient werden (es wird empfohlen, es einmal auszuprobieren), aber die Handhabung wird über seinRStudiodeutlich vereinfacht. also mach jetzt weiterhttps://www.rstudio.com/products/rstudio/download/und laden Sie die kostenlose Version herunter. Das ist erstmal wichtigRund dannRStudiodort installiert istRStudio Rerfordert

2.1 SterbenKonsole

Jetzt können wirRStudiooffen, alsoRes wird ebenfalls im Hintergrund geöffnet, jedoch mit der vereinfachten Benutzeransicht. Die Codeeingabe kann in der belassen werdenKonsoleauszuführen Als Beispiel setzen

(Video) Kap 2.1 Was bedeutet Vergleichende Politikwissenschaft

Systemzeit()
## [1] "2021-10-21 21:04:09 MESZ"

drinKonsoleund bestätigen Sie mit Enter, wodurch das Systemdatum und die Uhrzeit angezeigt werden. (Wie Sie vielleicht bemerkt haben, ist die Funktion so intuitiv wie möglich gehalten. Tipp: Versuchen Sie immer, die Absicht hinter den Funktionsnamen zu erraten.)

hast du das mitbekommenRStudioHat es Ihnen Codehinweise gegeben? (Wenn nicht, schreib nochmalSchwester.und sehen Sie, welche anderen Informationen Sie über das System abrufen können). Wenn wir nur Teile von Funktionen eingeben, versuchen Sie esRStudioum sie zu vervollständigen.Rhätte uns in seiner klassischen Version nicht geholfen.

Nun wollen wir selbst kreativ werden und Objekten Inhalte in Form von Werten oder Strings (Zeichen oder Zeichenfolgen) zuweisen. zentral ist die<-Operator, den Sie jetzt kennen und nie vergessen werden. Es ist eigentlich ganz einfach: was stimmt<-bildet das ab, was sich links von ihm befindet (Schlüsselwort: intuitiv). Schreiben Sie in dieKonsole

X <- 1

und sende den Code mit Enter. Um zu sehen, ob das funktioniert hat, werfen wir einen Blick auf das Objekt.Xausgeben (XdrinKonsoleschreiben und mit Enter senden).

X
## [1] 1

Wie gesagt, das funktioniert nicht nur mit Werten wie 1, sondern auch mit Strings:

y <- "Hallo" y
## [1] "Hallo"

Hinweis: Code wird im gesamten Kurs als Codeschnipsel (die leicht grau hinterlegten Bereiche) im Fließtext dargestellt. Bereiche mit weißem Hintergrund zeigen die Ausgabe. Senden Sie die Code-Snippets, während Sie sie lesen, und sehen Sie, ob Sie dasselbe Ergebnis erhalten.

2.2globale UmweltjGeschichte

die beiden ObjekteXjjSie befinden sich oben rechts im Fenster.globale Umwelterschien. Erglobale Umweltes ist der Ort, woRerstellte Objekte und geladene Daten während der Dauer von aR-Sitzung speichert. Es ist gewissermaßen der Raum, in dem wir arbeiten – daher das SynonymArbeitsraumdie du finden wirstRStudiogibt uns mit dem Fenster oben rechts einen direkten Überblick über alle von uns erstellten Objekte und die verfügbaren Daten. Im Gegenteil, wir können in derGeschichte(die Registerkarte auf der rechten Seite), um den gesamten Code zu finden, den wir geschrieben haben (nicht nur in der aktuellen Sitzung) (jetzt dieGeschichtenur der zu erstellende CodeXjjebenso gut wieSystemzeit()).

Das wird dringend empfohlenglobale Umweltam Ende einer Sitzung zu leeren, das heißt, dieArbeitsraumSpeichern Sie NICHT beim Schließen von R (R-Studiefragt danach). Das scheint ungewöhnlich, aber die Änderungen sind nur vorübergehend und wir ändern das.globale Umweltnicht nachhaltig. Gleichzeitig möchten wir natürlich die Datenmanipulationen in einer späteren Sitzung wiederholen können. Daher speichern wir den Code als Text (nicht die Änderungen an derglobale Umwelt, die davon abgeleitet sind) in aSkript R.

2.3Skript R

öffne einsSkript Rüber

  • Datei -> Neue Datei -> R-Skript

Ö

  • Strg+Umschalt+NÖ.Befehl+Umschalt+N.

Von nun an müssen Sie den gesamten Code in diese Skripte schreiben. Beginnen Sie damit: Wir können das vorhandene Objekt erstellenXwie folgt überschreiben:

x<-2

Wenn wir jetzt Enter drücken, ändern wir nichts (vglglobale Umwelt), scrollen wir einfach zur nächsten Codezeile im Skript. Wir können es jedoch

  • -> laufen(oben rechts über dem Skript)

Ö

  • Strg+EinleitungÖ.cmd+enter

Codezeilen aus dem Skript in dieKonsoleschicken. ein Blick hineinglobale Umweltbestätigt:Xihm wurde der Wert 2 zugewiesen (wenn das nicht funktioniert hat, stellen Sie sicher, dass sich der Cursor auf der Zeile befindet, die mit dem endetKonsolesollte gesendet werden, wenn Sie den Code senden).

Die Skripte speichern also den Code in Form von Text, damit wir ihn später wiederverwenden und überprüfen können. Sie sind nicht nur wichtig für die Erhaltung des Codes, sondern helfen uns auchReproduzierbarkeitum unsere Analyse zu bestätigen. Wissenschaftliche Zeitschriften verlangen heute regelmäßig, dass mit dem Manuskript eines Artikels reproduzierbares Material vorliegt, auf dessen Grundlage die Analyse reproduziert werden kann. Es wird auch erwartet, dass im Rahmen der Lehrveranstaltung empirische Arbeiten mit Replikatmaterial vorgestellt werden, um die darin berichteten Ergebnisse zu verifizieren.

Um dies zu erreichen, können wir unser Skript speichern. Wir speichern es zunächst manuellArchivund dannSpeichern als...wählen. In Sitzung 13 werden wir lernen, einzelne Objekte zu speichern.

2.4 Hilfe und mehr

NebenSkript R(oben links), dieKonsole(unten links) und dieglobale Umweltoder derGeschichte(oben rechts) gibt es unten rechts ein viertes Fenster, das vorher noch nicht erwähnt wurde. Tabs sind in der App wichtig.Raten,PaketejHilfe. NiedrigRatendrin seinRerstellte Bilder (mehr dazu in 4. und in den Sitzungen 6 und 8). NiedrigPaketeerhalten wir eine Übersicht über installierte und geladene Pakete (mehr dazu unter 4.). Endlich können wir unterHilfeZugriff auf Referenzhandbücher ("Bedienungsanleitungen") für einzelne Funktionen. Alles, was wir tun müssen, ist den Namen einer Funktion (ohne Klammern) in die Suchleiste einzugeben. Alternativ können wir ein Fragezeichen verwenden.?zusammen mit der Funktion in derKonsoleeingeben (oder natürlich per Skript senden):

?mesa

Siehe Hilfeeintrag für die Funktion.mesa()die dir jetzt gezeigt wird. ErR- Referenzhandbücher sind im Allgemeinen wie dieser Eintrag mit den Elementen Beschreibung, Verwendung, Argumente usw. aufgebaut. Es ist oft nützlich, Informationen über die Funktionsargumente zu haben (mehr dazu in 4.), "Siehe auch" für verwandte oder alternative Informationen. Funktionen und insbesondere die "Beispiele". Diese Anwendungsbeispiele sind sehr hilfreich.R- Verstehen Sie die Funktionen und wie Sie sie verwenden.

(Video) Einführung in die Datenanalyse: Multiple Lineare Regression

Nun wollen wir einen ersten Blick auf die Kodierung mit werfenRerhalten. Dazu ist es unerlässlich, die „Klassen“ zu kennen, in denen Objekte existieren können.Runterscheidet zwischen fünf einfachen (sogatomar) Objektklassen:Charakter,numerisch,ganz,Komplexjlogisch. Vier davon sind für uns direkt relevant und werden im Folgenden näher betrachtet. Mit der Funktion können wir feststellen, zu welcher „Klasse“ die Objekte gehörenKlasse()ausgeben lassen.

Figurensind Zeichen und Zeichenfolgen undRZeichenfolgendarstellung. Sie sind in doppelte Anführungszeichen eingeschlossen.""markiert:

Klasse ("abc")
## [1] "Zeichen"

ganze Zahlensie sind ganze Zahlen auf einem diskreten Zahlenstrahl wie 1, 2, 3, ... Zwischen 1 und 2 zum Beispiel gibt es nichts. Um sie von fortlaufenden Zahlen zu unterscheiden, benötigen wir aLIndex.

Klasse (1L)
## [1] "Ganzzahl"

Zahlenstellen den fortlaufenden Zahlenstrahl dar mit 1, 1,5, 2,6345,... Zahlen werden normalerweise dargestellt alsZahlenGerettet.

Klasse 1)
## [1] "numerisch"

logischbezeichnet die logischen Wahr/Falsch-AussagenWAHRjFALSCH.

Klasse (WAHR)
## [1] "logisch"

Hälfteexpliziter Zwang(z. B. "explizite Einschränkung") können wir die Klasse von Objekten absichtlich ändern. Klassen können nur geändert werden, wenn genügend Informationen vorhanden sind, um die Objekte in anderen Klassen sinnvoll zu definieren. In der Praxis geht es oft nur um ZwangFiguren,Zahlenjlogischrelevant, weshalb hier nur auf diese drei Klassen eingegangen wird.

Ein Objekt der Klasse.logischwir können das verstehennumerisch

als.numeric(TRUE)
## [1] 1
as.numeric(FALSE)
## [1] 0

Das WieCharakterdefinieren.

als.Zeichen(TRUE)
## [1] "WAHR"
als.Zeichen (FALSE)
## [1] "FALSCH"

Logische Wahr/Falsch-Aussagen werden als angenommennumerischdie Werte 1 und 0 und asCharakterdie entsprechenden Zeichenfolgen der Wörter"WAHR"j"FALSCH"zugewiesen.

ZahlenlassenFigurenconvert , wodurch Zahlen in Zeichen reduziert werden.

als.Zeichen(1)
## [1] "1"
als.Zeichen(15)
## [1] "15"

Wir können auchZahlenAlogischKonvertieren. Allerdings geht damit ein Informationsverlust einher, da jede positive und negative Zahl zunimmtWAHRund 0 bisFALSCHgezwungen sein".

wie.logisch(1)
## [1] WAHR
wie.logisch(0)
## [1] FALSCH
wie.logisch(-15)
## [1] WAHR

Wir können es schließlich auchCharakter-Objekte auchnumerischkonvertieren, wenn es sich um Zahlen handelt. Abfolgen von oder mit Buchstaben sind dagegen numerisch sinnlos. Folglich ist aDAS(„nicht verfügbar“) produziert.

as.numeric("1")
## [1] 1
como.numeric("1a")
## Warnung: Durch Konvertierung erstellte NAs
## [1] DAS
como.numeric("abc")
## Warnung: Durch Konvertierung erstellte NAs
## [1] DAS

Außerdem ist es nur möglichFigurenInlogischwenn es die Zeichenketten sind (exakt richtig geschrieben!)"WAHR"Ö"FALSCH"Fakten.

as.logical("WAHR")
## [1] WAHR
as.logical("TURE")
## [1] DAS
like.logical("1")
## [1] DAS

sie sind totalFigurenAlso das minimal budgetierte: alles kann seinCharakterausgedrückt werden.Zahlenannehmen, dass etwas als Zahl ausgedrückt werden kann.logischDie mutmaßlichsten schließlich sind: Sie erwarten Dichotomie. Folglich kann etwas existieren (WAHR) oder abwesend (FALSCH), mehr geht nicht. Das klingt alles umständlich, aber Objektklassen sind inRdirekt relevant für die Datenanalyse. Du sparst dir später viel Arbeit, wenn du es dir jetzt einprägst. Sie spielen beispielsweise im Zusammenhang mit Vektoren eine wichtige Rolle.

Vektoren sind die grundlegendsten und möglicherweise einfachsten Arten von Objekten inR. Sie dienen zum Speichern von Werten oder Zeichenketten. Tatsächlich haben wir in den vorherigen Beispielen Vektoren erstellt.

x <- 2x
## [1] 2

die Klammern[1]bezeichnen die Ausgabe von Vektoren und geben an, dass 2 der erste (und einzige) Wert innerhalb des Vektors istXIst. Vektoren können auch mehrere Elemente enthalten. der Doppelpunkt:bedeutet „bis“.

x <- 4:38 # Der Vektor `x` enthält Zahlen von 4 bis 38x
## [1] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28## ​​[26] 29 30 31 32 33 34 35 36 37 38

Aus den Klammern in der Ausgabe können wir erkennen, dass 4 das erste und 29 das 26. Element innerhalb des Vektors istXIst. 31 ist somit Element 28. Mit der Funktion können Vektoren gebildet und mehrere Elemente zu diesen kombiniert werdenC()(zu "kombinieren" oder "verketten"). Vektoren nehmen immer die Klasse der in ihnen gespeicherten Objekte an:

x <- c(1, 2, 3)Klasse(x)
## [1] "numerisch"
x <- c("a", "b", "c")Klasse(x)
## [1] "Zeichen"
x <- c(WAHR, FALSCH, WAHR, WAHR, FALSCH) Klasse(x)
## [1] "logisch"

4.1 Vektoren und Klassen

Das Besondere an Vektoren: Sie können nur ein und dieselbe Klasse von Objekten enthalten. Sie können beispielsweise nur numerische Daten enthalten oder nurFigurenenthalten. Wenn wir versuchen, Elemente verschiedener Klassen in einem Vektor zu gruppieren, werden sie automatisch der Klasse mit den wenigsten Voraussetzungen zugeordnet.

(Video) Universität Passau • B.A. Governance and Public Policy – Staatswissenschaften • Informationsvideo

x <- c(1, "a")Klasse(x)
## [1] "Zeichen"
x <- c(1, TRUE)Klasse(x)
## [1] "numerisch"
x <- c("a", TRUE)Klasse(x)
## [1] "Zeichen"

Dieser Vorgang wird aufgerufenangedeuteter Zwang("stillschweigender Zwang") und weil tückisch istRes zeigt keine Fehlermeldung über den Klassenwechsel, obwohl es zu einem Informationsverlust kommt. Wir müssen also wissen, was wir tun. Daher ist es wichtig, die Klassen der Objekte zu kennen.

4.2 Auswahl von Elementen in Vektoren

Einzelne Elemente innerhalb von Vektoren können durch eckige Klammern getrennt werden[]wählen. Dies ist besonders nützlich für längere Vektoren. Dazu erstellen wir zunächst einen VektorX, die die ersten acht Buchstaben des Alphabets enthält. das ist also einerCharakter-Vektor. Danach wählen wir ein Element aus, indem wir es anhand seiner Position innerhalb des Vektors mit den eckigen Klammern identifizieren.

x <- c("a", "b", "c", "d", "e", "f", "g", "h")x[3] # Wähle das dritte Element
## [1] "c"
x[4:7] # Elemente vom vierten bis zum siebten auswählen
## [1] "d" "e" "f" "g"

Der BefehlC()("combine", "concatenate") kann auch hier verwendet werden:

x[c(2, 5)] # Zweites und fünftes Element auswählen
## [1] "b" "e"
x[c(5, 5, 5)] # wähle das fünfte Element dreimal aus
## [1] "und" "und" "und"

Ebenso können wir negative Entscheidungen treffen und allesaußerWählen Sie die von uns angegebenen Elemente aus. Artikel, dieNEINwir auswählen wollen, fügen wir das Minuszeichen hinzu-.

x[-5] # alle Elemente außer dem fünften auswählen
## [1] "a" "b" "c" "d" "f" "g" "h"
x[-c(2, 6)] # wählt alle Elemente außer dem zweiten und sechsten aus
## [1] "a" "c" "d" "e" "g" "h"

Schließlich können wir mithilfe eines logischen Vektors eine Auswahl treffen. Dieser muss dieselbe Länge haben wie der Vektor, den wir auswählen möchten. ansonsten verstehenRnicht in welchem ​​Element inXbezieht sich auf welches Element im neuen Vektor. Den logischen Vektor bilden wir mitC()innerhalb der Klammern vonX.

x[c(WAHR, FALSCH, FALSCH, WAHR, WAHR, WAHR, FALSCH, WAHR)]
## [1] "a" "d" "e" "f" "h"

Hier wurde acht Mal eine Richtig/Falsch-Aussage gemacht, die so viele Elemente enthielt wieX. Somit ist für jedes der Elemente vonXeine entsprechende Aussage.

Diese Form der Selektion ist in der Praxis zu kompliziert. Dieses Beispiel hilft uns jedoch zu verstehen, wie logische Vergleiche funktionierenRFunktion. Wenn wir zum Beispiel eine Namensliste haben und wissen wollten, ob „Christoph“ drauf steht, antworte unsRin Form eines logischen Vektors:

nombres <- c("Helena", "Philipp", "Jakob", "Julia", "Christoph", "Johannes", "Nicole", "Kerstin") nombres == "Christoph"
## [1] FALSCH FALSCH FALSCH FALSCH RICHTIG FALSCH FALSCH FALSCH

als Ausgabe generiertRein logischer Vektor. Dies sagt uns, dass innerhalb des VektorsNamendie Aussage, dassNamengleich "Christoph" ist "true" auf dem fünften Platz. Alles andere ist falsch.

Noch ergiebiger sind solche Vergleiche auf der Grundlage numerischer Daten. Wenn wir einen Vektor haben, der verschiedene Jahre speichert, können wir auf ähnliche Weise prüfen, ob er das Jahr 2010 enthält. Außerdem konnten wir vergleichende Zeichen verwenden, um zu prüfen, ob frühere oder spätere Jahre enthalten sind. wir gebrauchen=="selbst",!="ungleich",<"kleiner",>"größer als",<="weniger als" und>="größer als oder gleich wie"

Jahre <- c(2013, 2005, 1995, 2017, 2021, 1989, 2010, 2018)Jahre == 2010 # Welche Elemente sind gleich dem Jahr 2010?
## [1] FALSCH FALSCH FALSCH FALSCH FALSCH FALSCH RICHTIG FALSCH
Jahre < 2010 # Welche Elemente sind kleiner (älter) als das Jahr 2010?
## [1] FALSCH RICHTIG RICHTIG FALSCH FALSCH RICHTIG FALSCH FALSCH
Jahre >= 2010 # Welche Elemente sind größer/gleich (vor oder gleich) dem Jahr 2010?
## [1] RICHTIG FALSCH FALSCH RICHTIG RICHTIG FALSCH RICHTIG RICHTIG
years != 2010 # Welche Elemente sind nicht gleich (nicht) Jahr 2010?
## [1] RICHTIG RICHTIG RICHTIG RICHTIG RICHTIG RICHTIG FALSCH RICHTIG

Wir können die logischen Vektoren nutzen, die die Ausgabe dieser Auswahlanforderungen darstellen. Wenn wir wissen wollen, welche Jahre seit 2010 enthalten sind, schreiben wir:

Auswahl <- Jahre >= 2010Jahre[Auswahl]
## [1] 2013 2017 2021 2010 2018

Folgendes ist effektiver, da der Code kürzer ist, aber das Ergebnis dasselbe ist:

Jahre[Jahre >= 2010]
## [1] 2013 2017 2021 2010 2018

Technisch gesehen passiert in beiden Fällen Folgendes:Rwendet den logischen Vektor in Klammern auf den Vektor anJahreund spezifiziert die Elemente vonJahrevon wo der logische Vektor alsWAHRidentifiziert. Elemente wieFALSCHidentifiziert werden ignoriert. Dann haben wir eine Teilmenge vonJahreSie sind definiert.

InCharakter-Strings können solche Dur-Moll-Vergleiche nicht sinnvoll interpretiert werden (kein Name ist größer oder kleiner als ein anderer). Wenn wir mehrere Elemente in einem habenCharakter-Vektoren auswählen wollen, die anbietenlogische Operatoren |(Alt+7Ö.Option+7) für „oder“ und&für "und" in.

Namen[Namen == "Helena" | Namen == "Nicole"]
## [1] "Helena" "Nicole"
Namen[Namen == "Helena" & Namen == "Nicole"]
## Zeichen(0)
Namen[Namen != "Helena" | Namen != "Nicole"]
## [1] "Helena" "Philipp" "Jakob" "Julia" "Christoph" "Johannes" ## [7] "Nicole" "Kerstin"
Namen[Namen != "Helena" & Namen != "Nicole"]
## [1] "Philipp" "Jakob" "Julia" "Christoph" "Johannes" "Kerstin"

Die erste Codezeile fragt, ob ein Element inNamenist gleich "Helena" oder gleich "Nicole". Das gilt für „Helena“ und „Nicole“. Die zweite Zeile fragt, ob ein Element inNamenentspricht "Helena" und "Nicole". Da jedes Element nur ein Name ist, ist es kein Element. Die dritte Zeile fragt, ob ein Element nicht „Helena“ oder „Nicole“ ist. Da kein Element beides sein kann, können alle Elemente beides sein. Schließlich fragt Zeile 4, ob ein Element weder „Helena“ noch „Nicole“ ist. Dies gilt für alle Artikel außer „Helena“ und „Nicole“. Wenn wir also eine Liste aller Namen außer Helena und Nicole haben wollen, machen wir das so:

andere <- Namen[Namen != "Helena" & Namen != "Nicole"]andere
## [1] "Philipp" "Jakob" "Julia" "Christoph" "Johannes" "Kerstin"

4.3 Einfache Operationen mit Vektoren

Schließlich können wir auch einfache mathematische Operationen mit Vektoren durchführen.Rerkennt die in einem Vektor gespeicherten Werte und verwendet diese zur Berechnung.

x <- 2x + x
## [1] 4
4-x
## [1] 2
y <- 3x * y
## [sechzehn
Jahr / 2
## [1] 1.5
x ^ 3
## [1] 8

REs hat auch einige mathematische Funktionen, die wir üblicherweise auf Vektoren anwenden:

sum(x, y) # Summe von x und y
## [15
sqrt(x) # Quadratwurzel von x
## [1] 1.414214
mean(c(x, y)) # arithmetisches Mittel von x und y (beachte die Verwendung von `c()`)
## [1] 2.5
median(c(x, y)) # Median von x und y
## [1] 2.5

Durch den Umgang mit Klassen, Vektoren und die Kenntnis des Programms sind wir Funktionen wieSystemzeit(),C()jKlasse()getroffen. Bisher haben wir jedoch noch nicht im Detail darauf eingegangen, welche internen Strukturfunktionen sie haben und wie sie implementiert sindRWerden erstellt.

5.1Base-R und die Grundstruktur von Funktionen

Funktionen sind Paketen zugeordnet. Sie können nur genutzt werden, wenn wir das zugehörige Paket installiert und geladen haben. Wir können herausfinden, zu welchem ​​Paket eine Funktion gehört, indem wir die Hilfsfunktion (siehe oben) für die Funktion aufrufen. Wir finden das Paket in der oberen linken Ecke zwischen geschweiften Klammern hinter dem Funktionsnamen.

?Zusammenfassung

Die FunktionZusammenfassung()daher gehört es zum PaketBase.Baseist die OriginalverpackungRund wird mit teilenREingerichtet. Es enthält grundlegende Funktionen, ohne die eine Datenanalyse nicht erfolgreich durchgeführt werden kann. Für speziellere Anwendungen müssen wir jedoch spezielle Pakete installieren.

Funktionen haben Argumente, die wir angeben können oder manchmal müssen. So bestimmen wir wasRdie Funktion verwandt ist und wie genau sie ausgeführt werden soll. Die Argumente stehen in den eckigen Klammern.()hinter dem Funktionsnamen und werden mit dem Gleichheitszeichen angegeben (einfach)=auf einen bestimmten Wert fixiert oder mit Inhalt versehen. Mehr oder weniger:

Funktion (Argument1 = a, Argument2 = b).

Einige Argumente müssen explizit angegeben werden, während andere mit einer Standardeinstellung (dem "Standard") versehen sind.Rgeneriert eine Fehlermeldung, wenn keine erforderlichen Argumente angegeben werden.

summary(object = ) # Argument "object =" nicht angegeben
summary(object = years) # funktioniert jetzt
## Mindest. 1.Qu. Mediana Media 3erQu. max. ## 1989 2002 2012 2008 2017 2021

Auch müssen die Argumente nicht explizit deklariert werden. Da sie eine feste Reihenfolge haben, reicht es aus, wenn wir sinnvoll interpretierbare Eingaben in der richtigen Reihenfolge zwischen die Befehlsklammern setzen. Insbesondere bei Funktionen mit einem Argument wird normalerweise die Benennung des Arguments gespeichert.

Zusammenfassung (Jahre)
## Mindest. 1.Qu. Mediana Media 3erQu. max. ## 1989 2002 2012 2008 2017 2021

RStudiohilft uns, indem es die Argumente einer Funktion vorschlägt, wenn wir den Cursor in die Klammern einer Funktion und setzenWimperDrücken Sie. Auf diese Weise müssen Sie sich die Argumente verschiedener Funktionen nicht merken.

(Video) Kap 3.2 Was bedeutet die Unterscheidung zwischen qualitativen und quantitativen Methoden

5.2 Installieren und Laden von Paketen

Als Beispiel für ein spezialisiertes Paket wollen wir jetzt das Paketggplot2erfahren, dass wir uns zum Thema Datenvisualisierung wiedersehen werden. Wir installieren Pakete mit dem Befehlinstall.packages(), wobei Paket in Anführungszeichen steht""Es ist etabliert.

install.packages("ggplot2")

Ist jetztggplot2auf unserem Rechner installiert. Werfen Sie einen Blick auf das Fenster unten rechtsPaketewenn du es finden kannst. Damit wir es verwenden können, müssen wir es auch laden. MitBibliothek()holen wir es bitte aus der Bibliothek (eigentlich finden Sie es unten rechts unterPaketedie BezeichnungSystembibliothekfür den Ort, an dem alle Pakete gelagert werden).

Bibliothek (ggplot2)

Jetzt wird das Paket geladen und wir können auf seine Funktionen zugreifen. Wenn du wieder unter ihm bistPaketeSie werden feststellen, dass das Kästchen links neben dem Paket jetzt aktiviert ist. Alternativ hätten wir das Paket auch per Mausklick laden können.

Als nächstes wollen wir eine Funktion des Pakets.ggplot2tragen. Mitqplot()(für "schnelles Diagramm") ist es ziemlich einfach, gut aussehende Diagramme zu erstellen. Dazu verwenden wir den DatensatzMeilen pro Galloneüber den Kraftstoffverbrauch von Automodellenggplot2zur Veranschaulichung geliefert (weitere Informationen untermpg).Meilen pro Galloneenthält unter anderem Informationen darüber, wie viele Meilen ein bestimmtes Modell mit einer Gallone (US-Flüssigkeitsmaß) Benzin fahren kannStadtfür Meilen in der Stadt undStraßekilometerweit auf der Autobahn. Um herauszufinden, ob sich der Anstieg des Verbrauchs in städtischen und ländlichen Gebieten gleichermaßen widerspiegelt, können wir ein Streudiagramm dieser beiden Variablen zeichnen.

Um das Streudiagramm zu zeichnen, benötigen wir (mindestens) die ArgumenteX- womit wir definieren, welche Variable auf die X-Achse abgebildet werden soll,j- womit wir die Y-Achse definieren, undDaten- mit dem wir den verwendeten Datensatz definieren - ermitteln. Wir wollen Konsum in der StadtStadtzeigen auf der x-Achse den Verbrauch auf der StraßeStraßeauf der Y-Achse und verwenden Sie den DatensatzMeilen pro Gallone.

qplot(x = Stadt, y = Autobahn, Daten = mpg)

Politikwissenschaftliche Statistik mit R. Session 1: Einführung und Grundlagen (1)

Da die Reihenfolge der ersten beiden Argumente festgelegt ist, müssen wir sie nicht explizit benennen (siehe Reihenfolge der Argumente in?qplot). Weil mehr Argumente (...) möglich sind, wird die Bestellung storniert, damit wir dies tun könnenDatenmüssen explizit erwähnt werden.

qplot(Stadt, Autobahn, Daten = mpg)

Politikwissenschaftliche Statistik mit R. Session 1: Einführung und Grundlagen (2)

Wie wir sehen, besteht ein (erwarteter) deutlicher Zusammenhang zwischen dem Konsum in der Stadt und dem Konsum auf dem Land. Eine eindeutige Vorhersage des Autobahnverbrauchs anhand eines Werts für den Stadtverbrauch ist jedoch nicht möglich: Verschiedene Modelle mit gleichem Stadtverbrauch unterscheiden sich im außerstädtischen Verbrauch um bis zu 8 Meilen pro Gallone (siehe cty == 15).

Diese Einführungsveranstaltung bot eine breite Einführung in die Datenanalyse.R. der Code wird drin seinRumKonsolegesendet, während wir im warenSkript Rauf dem Computer speichern. AnArchivjSpeichern als...Skripte werden gespeichert. Dies ist notwendig, damit unsere Analyse wiederverwendbar, kontrollierbar und reproduzierbar ist. Die dabei erstellten und geänderten Objekte werden im gespeichertglobale Umweltfür die Dauer einer Sitzung gespeichertGeschichtespeichert alle jemals gesendeten Codes.Figuren,ganze Zahlen,Zahlenjlogischsind vier Klassen von häufig gefundenen Objekten. Klassenwechsel sind mit Informationsverlust verbunden und nur dann erfolgreich, wenn genügend Informationen vorhanden sind, um Objekte in anderen Klassen sinnvoll zu interpretieren. Vektoren enthalten immer Elemente derselben Klasse. Pakete enthalten Funktionen und sind auf unterschiedliche Weise spezialisiert. Einige Pakete sind vorinstalliert, andere müssen eingebunden werdeninstall.packages()installiert und mit vor jedem GebrauchBibliothek()Laden. Funktionen nehmen Argumente entgegen, von denen nur einige angegeben werden müssen. Solange die Reihenfolge eine eindeutige Zuordnung erlaubt, müssen die Argumente nicht explizit genannt werden.

  1. InstallierenRjR-Studiewie in 2 beschrieben. Führen Sie die Codeschnipsel aus 2 aus.
  2. Erstellen Sie zwei numerische Vektoren mit jeweils fünf beliebigen Werten. Addiere die Vektoren und multipliziere sie. Erstellen Sie einen weiteren Vektor, indem Sie die beiden Vektoren miteinander kombinieren.
  3. Erstellen Sie einen Zeichenvektor, der die Buchstaben des Alphabets enthält. Erstellen Sie einen zweiten Zeichenvektor, der nur die Konsonanten als Teilmenge des ersten enthält.

Videos

1. Day I, Info-Session II: Ukrainian Studies Research in Berlin & Brandenburg, 16 Sept. 2021
(The UKRAINE Network (UKRAINET.eu))
2. Kausalität (Korrelation & Regression)
(DATAtab)
3. The Future is Open Science Podcast 08 - Open Source
(ZBW - Leibniz-Informationszentrum Wirtschaft)
4. Regressionsanalyse
(DATAtab)
5. Online-Infotage | Digitale Sozialwissenschaften | Uni Hildesheim
(Uni Hildesheim)
6. 19.1 Logistische Regression | Einführung
(Statistik Grundlagen mit FIVE PROFS)
Top Articles
Latest Posts
Article information

Author: Dan Stracke

Last Updated: 05/24/2023

Views: 5948

Rating: 4.2 / 5 (63 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Dan Stracke

Birthday: 1992-08-25

Address: 2253 Brown Springs, East Alla, OH 38634-0309

Phone: +398735162064

Job: Investor Government Associate

Hobby: Shopping, LARPing, Scrapbooking, Surfing, Slacklining, Dance, Glassblowing

Introduction: My name is Dan Stracke, I am a homely, gleaming, glamorous, inquisitive, homely, gorgeous, light person who loves writing and wants to share my knowledge and understanding with you.