-get install r-base sudo apt
MäRchen: Text Mining mit den sieben Zwergen
R: Erste Schritte
Was ist R?
R ist eine freie Programmiersprache für statistische Berechnungen und das Erstellen von Grafiken. Die folgende Einführung basiert auf Levshina (2015).
Wieso R?
- R ist das Standard-Tool in Linguistik und anderen Fächern.
- R hat vielfältige Funktionen und Pakete für statistische Analysen.
- R ist vielseitig einsetzbar.
- R ist freie Software.
R installieren
Besuchen Sie CRAN (Comprehensive R Archive Network) hier und laden Sie die für Sie richtige Version von R (Windows, Ubuntu, Mac) herunter und installieren Sie sie auf Ihrem Computer. Wenn Sie Ubuntu nutzen, können Sie auch folgenden Befehl im Terminal ausführen.
Sie müssen außerdem RStudio installieren. RStudio ist eine Umgebung und grafische Benutzeroberfläche für R und hier downloadbar. Laden Sie die für Sie richtige Version von RStudio (Windows, Ubuntu, Mac) herunter und installieren Sie sie auf Ihrem Computer. Wenn Sie Ubuntu nutzen, können Sie auch folgende Befehle im Terminal ausführen.
-get install gdebi-core
sudo apt://download2.rstudio.org/server/debian9/x86_64/rstudio-server-1.4.1103-amd64.deb
wget https-server-1.4.1103-amd64.deb sudo gdebi rstudio
Wenn alles geklappt hat, erstellen Sie einen Ordner mit dem Namen maerchen. Öffnen Sie dann RStudio und erstellen Sie ein neues Projekt namens maerchen.
R Grundlagen
Erstellen Sie ein neues Script, indem Sie Strg + Shift + N drücken oder links in der Kopfzeile auf File => New File => R Script klicken. Speichern Sie das Script, indem Sie Strg + S drücken oder links in der Kopfzeile auf File => Save klicken.
Probieren Sie jetzt die folgenden Befehle aus. Sie führen einen Befehl aus, indem Sie die Zeile anklicken und dann Strg + Enter drücken. Was machen diese Befehle?
2+2
10-5
5*5
10/2
3^2
sqrt(16)
log(10)
log10(10)
-10 + (56 + 76)/12 + 3^4 - sqrt(16) + 200*0.01
Ausdrücke wie sqrt()
oder log()
heißen Funktionen: Sie führen einen vor-definierten Befehl an einem Argument (hier einer Zahl) aus. Hilfe zu diesen Funktionen erhalten Sie so:
?sqrthelp(sqrt)
Sie können die Ergebnisse Ihrer Befehle als Objekte mit <-
speichern. Sie können die Objekte dann weiter verwenden.
<-3
a
a <-3+3
b
b <-a+b
c
c+5
csqrt(c)
Mit den folgenden Befehlen können Sie alle erzeugten Objekte aufliste, ein bestimmtes Objekt löschen oder alle Objekte löschen.
ls()
rm(a)
rm(list = ls())
R nutzt verschiedene Arten von Objekten. Sogenannte Vektoren enthalten entweder Zahlen oder Buchstaben oder beides. Die Funktion c()
erzeugt aus einzelnen Elementen einen Vektor.
<-1:5
vnum
vnum
<-c(1,2,3,4,5,10,15,25)
vnum
vnum
<-c("Chengdu", "ist", "die", "schönste", "Stadt", "in", "China", "Chengdu", "ist", "die", "schönste", "Stadt", "in", "der", "Welt")
chengdu.vec chengdu.vec
Aus einem Vektor lässt sich ein Faktor erzeugen, mit dem Befehl factor()
.
<-factor(chengdu.vec)
chengdu.fac chengdu.fac
Denkpause
Wie unterscheidet sich ein Faktor von einem Vektor?
Ein Faktor bildet die verschiedenen Elemente in einem Vektor als sogenannte Level ab, in alphabetischer Reihenfolge (Chengdu China der die in ist schönste Stadt Welt). Bei sprachlichen Daten werden diese Levels auch Types genannt.
Wie häufig ein bestimmter Level oder Type im Faktor vorkommt, zeigt die Funktion table()
, die eine Häufigkeitstabelle erzeugt. Die einzelnen Vorkommen eines Types heißen Token.
<-table(chengdu.fac)
chengdu.tbl chengdu.tbl
Mehrere numerische Vektoren oder Faktoren (d.h. Vektoren/Faktoren aus Zahlen) können zu einer Matrix verbunden werden, mit cbind()
. cbind()
verbindet zwei oder mehr Objekte als Spalten. rbind()
hingegen als Zeilen.
c(1:5)
c(10:6)
cbind(c(1:5), c(10:6))
rbind(c(1:5), c(10:6))
In richtiger Forschung werden Daten meistens in einem data frame abgebildet. Ein data frame wird normalerweise als eine Tabelle mit Spalten und Zeilen gezeigt. Spalten stehen für Variablen, Zeilen für einzelne Fälle. Beispiel: In unserer Klasse sind 6 Studierende und ein Lehrer, 6 Frauen und ein Mann. Beim Sportunterricht wird unsere Zeit für 1 km Laufen gemessen. Die Funktion dataframe()
kombiniert die fünf Vektoren in einem data frame.
<-c(1,2,3,4,5,6,7)
NUMBER<-c("Gong Yue", "Wang Zixia", "Zhong Yating", "Liang Huimin", "Chen Yuqing", "Xu Yi", "Jach Daniel")
NAME<-c("student", "student", "student", "student", "student", "student", "teacher")
ROLE<-c("female", "female", "female", "female", "female", "female", "male")
SEX<-c(8, 10, 7, 9, 9, 7, 15)
TIME
<-data.frame(NUMBER, NAME, ROLE, SEX, TIME)
df
df
str(df)
nrow(df)
ncol(df)
$SEX # Spalte SEX aufrufen
df3,] # Zeile 3 aufrufen
df[3] # Spalte 3 aufrufen
df[,3,3] # Zelle in Zeile 3, Spalte 3 aufrufen df[
Die Funktion str()
zeigt die interne Struktur jedes Objekts an. Einzelne Bestandteiles eines data frames sind mit $
oder mit [Zeile,Spalte]
abrufbar.
Denkpause
Nützlich sind auch die Funktionen nrow()
und ncol()
. Was zeigen sie an?
Sie können Ihre Ergebnisse abspeichern und wieder in R laden.
write.table(df, file = "./data/example-data-frame.csv")
rm(df)
df
<-read.table("./data/example-data-frame.csv")
df df
R ist auch besonders gut geeignet zum Erstellen von Grafiken.
<-table(df$SEX)
tblbarplot(tbl)
chengdu.vec<-table(chengdu.vec)
tblbarplot(tbl, las = 2)
jpeg("./data/example-plot.jpeg")
barplot(tbl, las = 2)
dev.off()
Um Grafiken abzuspeichern, bestimmen Sie ein Format (z.B. png()
, jpeg()
) und einen Pfad, erzeugen die Grafik und führen dann dev.off()
aus. Sie müssen diese Code-Zeilen zusammen ausführen: Markieren Sie den Code mit der Maus und drücken Sie dann Strg + Enter.
Hausaufgabe
Erstellen Sie einen Vektor mit dem Alter aller Kursteilnehmerinnen in Jahren.
Berechnen Sie den Altersdurchschnitt.
Wählen Sie zufällig zehn Wörter aus Ihrem Wörterbuch aus. Erstellen Sie einen data frame mit vier Spalten: Token, Wortart, Anzahl der Bedeutungen und ob das Wort einen Umlaut (ä, ü, ö) enthält.
Erstellen Sie eine Häufigkeitstabelle für die Wortarten aus Ihrem data frame.
Erstellen Sie eine Grafik für Ihre Häufigkeiten.
Installieren Sie folgende Pakete.
install.packages(c("dplyr", "tm", "tidytext", "tools", "ggplot2"), dependencies = TRUE)