Daten kennenlernen und plotten

RStudio verwenden

Für die Zwecke dieses Tutorials verwenden wir RStudio. RStudio is eine ‘Public Benefit Corporation (PBC)’. RStudios Mission ist es, kostenlose Open-Source-Software für Datenwissenschaft, wissenschaftliche Forschung und technische Kommunikation zu erstellen. Das Projekt bietet kostenlose und offene Tools für Teams, die sowohl R als auch andere Programmiersprachen verwenden, um ihre Arbeit zu skalieren und zu teilen.

Mit RStudio-Projekten (.RProj) können Sie Ihre Arbeit auf einfache Weise in mehrere Kontexte mit jeweils eigenem Arbeitsverzeichnis, Arbeitsbereich, Verlauf und Quelldokumenten unterteilen.

RStudio-Projekte sind R-Arbeitsverzeichnissen zugeordnet. Sie können ein RStudio-Projekt erstellen:

  • In einem brandneuen Verzeichnis
  • In einem vorhandenen Verzeichnis, in dem Sie bereits R-Code und Daten haben

Um ein neues Projekt zu erstellen, verwenden Sie den Befehl ‘Projekt erstellen’

Ansicht von R-Studio ‘Projekt erstellen’ wird auch als ‘New Project’ bezeichnet

Dies ist im Menü “Projekte” und in der globalen Symbolleiste verfügbar:

Ansicht der globalen Symbolleiste in R-Studio

Durch das Öffnen eines neuen Projekts in RStudio wird eine Projektdatei (mit der Erweiterung .Rproj) im Projektverzeichnis erstellt. Diese Datei kann später als Verknüpfung zum direkten Öffnen des Projekts verwendet werden (durch Doppelklick).

Tomatenproduktiondaten

Die Daten, die wir in den folgenden Beispielen verwenden werden, beziehen sich auf die Tomatenproduktion unter verschiedenen Gewächshausglas-, Stress- und anderen Kontroll- und Behandlungsbedingungen. Sie finden diese Daten in hier und in unserem gemeinsamen Ordner.

Die Daten werden in eine Kalkulationstabelle aufgezeichnet. Um dies in R zu verwenden, mussten wir einige Dinge ändern, es dürfen z.B. keine leeren Zellen dazwischen sein, (muss mit NA = not available aufgefüllt werden) und die Variablennamen (= Spaltenbeschriftungen) dürfen keine Leerzeichen haben. Um das Einlesen in die Programmiersprache R zu vereinfachen, können wir die Tabelle als CSV-Datei ‘comma separated values’ speichern.

  • Einlesen der Daten ‘comma separated values’ Daten mit der R-Funktion read.csv()
tomaten_daten <- read.csv("data/Tomaten.csv")

Beachten Sie bei der Verwendung von R Studio Folgendes:

  • Behalten Sie Ihre Daten in derselben Ordnerstruktur wie die .RProj-Datei
  • auf oder unter der Ebene der .RProj-Datei

Hier haben wir die Datei in einem Unterordner namens ‘data’ gespeichert. Wenn Sie die Daten auf derselben Ebene wie die .Rproj-Datei haben, rufen Sie einfach tomaten_daten <- read.csv("Tomaten.csv") auf, um die Daten zu laden.

Datenstruktur verstehen

Lernen Sie die Struktur Ihrer Daten mit folgenden Funktionen kennen:

summary() zeigt eine allgemeine Zusammenfassung aller Daten an

summary(tomaten_daten)
##         Datum       Zeitpunkt           Haus            Bedachung  
##  10/1/2018 : 96   Min.   : 1.000   Min.   :1.000   ETFE-Folie:285  
##  10/15/2018: 96   1st Qu.: 3.000   1st Qu.:2.000   Floatglas :292  
##  10/22/2018: 96   Median : 5.000   Median :4.000   Solarglas :288  
##  10/29/2018: 96   Mean   : 5.089   Mean   :3.504                   
##  10/8/2018 : 96   3rd Qu.: 7.000   3rd Qu.:5.000                   
##  11/5/2018 : 96   Max.   :10.000   Max.   :6.000                   
##  (Other)   :289                                                    
##   Pflanzen.Nr    Veredelung Salzstress   Trieblänge    Anzahl_Blätter 
##  Min.   : 1.00   mit :434   mit :431   Min.   :  0.0   Min.   : 0.00  
##  1st Qu.:25.00   ohne:431   ohne:434   1st Qu.: 80.0   1st Qu.:15.00  
##  Median :49.00                         Median :104.0   Median :19.00  
##  Mean   :48.55                         Mean   :106.4   Mean   :19.62  
##  3rd Qu.:72.00                         3rd Qu.:130.0   3rd Qu.:24.00  
##  Max.   :96.00                         Max.   :196.0   Max.   :36.00  
##                                                                       
##  Anzahl_Blütenstände Anzahl_grüne_Früchte Anzahl_rote_Früchte
##  Min.   : 0.000      Min.   : 0.00        Min.   : 0.000     
##  1st Qu.: 3.000      1st Qu.: 2.00        1st Qu.: 0.000     
##  Median : 4.000      Median : 7.00        Median : 0.000     
##  Mean   : 4.467      Mean   :11.14        Mean   : 1.029     
##  3rd Qu.: 6.000      3rd Qu.:17.00        3rd Qu.: 0.000     
##  Max.   :36.000      Max.   :58.00        Max.   :15.000     
##                                                              
##  Anzahl_Blütenendfäule Anzahl_geerntete_Früchte Gewicht_Trieb   Gewicht_Blätter
##  Min.   : 0.000        Min.   : 0.000           Min.   :  0.0   Min.   :   0   
##  1st Qu.: 0.000        1st Qu.: 0.000           1st Qu.:235.0   1st Qu.: 820   
##  Median : 1.000        Median : 0.000           Median :368.0   Median :1237   
##  Mean   : 3.042        Mean   : 0.341           Mean   :328.6   Mean   :1077   
##  3rd Qu.: 5.000        3rd Qu.: 0.000           3rd Qu.:428.0   3rd Qu.:1418   
##  Max.   :17.000        Max.   :10.000           Max.   :579.0   Max.   :1783   
##                                                 NA's   :768     NA's   :768    
##  Gewicht_grüne_Früchte Gewicht_rote_Früchte Gewicht_Blütenendfäule
##  Min.   :   0.0        Min.   :  0.0        Min.   :  0.00        
##  1st Qu.: 365.0        1st Qu.:  0.0        1st Qu.:  0.00        
##  Median : 688.0        Median :  0.0        Median :  0.00        
##  Mean   : 633.2        Mean   : 18.9        Mean   : 21.93        
##  3rd Qu.: 964.0        3rd Qu.:  0.0        3rd Qu.: 28.00        
##  Max.   :1222.0        Max.   :312.0        Max.   :221.00        
##  NA's   :768           NA's   :768          NA's   :768

str() ist eine kompakte Alternative zur summary(), um den abgekürzten Inhalt Ihrer Daten anzuzeigen

str(tomaten_daten)
## 'data.frame':	865 obs. of  19 variables:
##  $ Datum                   : Factor w/ 10 levels "10/1/2018","10/15/2018",..: 9 9 9 9 9 9 9 9 9 9 ...
##  $ Zeitpunkt               : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ Haus                    : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ Bedachung               : Factor w/ 3 levels "ETFE-Folie","Floatglas",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ Pflanzen.Nr             : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Veredelung              : Factor w/ 2 levels "mit","ohne": 2 2 2 2 1 1 1 1 1 1 ...
##  $ Salzstress              : Factor w/ 2 levels "mit","ohne": 2 2 2 2 2 2 2 2 1 1 ...
##  $ Trieblänge              : num  63 53 53 56 51 50 57 58 52 47 ...
##  $ Anzahl_Blätter          : int  13 13 11 12 12 11 12 13 11 9 ...
##  $ Anzahl_Blütenstände     : int  4 4 3 3 3 3 4 3 3 4 ...
##  $ Anzahl_grüne_Früchte    : int  1 3 0 2 0 0 1 0 0 0 ...
##  $ Anzahl_rote_Früchte     : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ Anzahl_Blütenendfäule   : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ Anzahl_geerntete_Früchte: int  0 0 0 0 0 0 0 0 0 0 ...
##  $ Gewicht_Trieb           : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ Gewicht_Blätter         : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ Gewicht_grüne_Früchte   : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ Gewicht_rote_Früchte    : int  NA NA NA NA NA NA NA NA NA NA ...
##  $ Gewicht_Blütenendfäule  : int  NA NA NA NA NA NA NA NA NA NA ...

head() zeigt den Anfang Ihrer Daten an. Dies kann nützlich sein, wenn Sie nur schnell überprüfen möchten, ob die Formatierung Ihren Erwartungen entspricht.

head(tomaten_daten)
##       Datum Zeitpunkt Haus Bedachung Pflanzen.Nr Veredelung Salzstress
## 1 9/17/2018         1    1 Floatglas           1       ohne       ohne
## 2 9/17/2018         1    1 Floatglas           2       ohne       ohne
## 3 9/17/2018         1    1 Floatglas           3       ohne       ohne
## 4 9/17/2018         1    1 Floatglas           4       ohne       ohne
## 5 9/17/2018         1    1 Floatglas           5        mit       ohne
## 6 9/17/2018         1    1 Floatglas           6        mit       ohne
##   Trieblänge Anzahl_Blätter Anzahl_Blütenstände Anzahl_grüne_Früchte
## 1         63             13                   4                    1
## 2         53             13                   4                    3
## 3         53             11                   3                    0
## 4         56             12                   3                    2
## 5         51             12                   3                    0
## 6         50             11                   3                    0
##   Anzahl_rote_Früchte Anzahl_Blütenendfäule Anzahl_geerntete_Früchte
## 1                   0                     0                        0
## 2                   0                     0                        0
## 3                   0                     0                        0
## 4                   0                     0                        0
## 5                   0                     0                        0
## 6                   0                     0                        0
##   Gewicht_Trieb Gewicht_Blätter Gewicht_grüne_Früchte Gewicht_rote_Früchte
## 1            NA              NA                    NA                   NA
## 2            NA              NA                    NA                   NA
## 3            NA              NA                    NA                   NA
## 4            NA              NA                    NA                   NA
## 5            NA              NA                    NA                   NA
## 6            NA              NA                    NA                   NA
##   Gewicht_Blütenendfäule
## 1                     NA
## 2                     NA
## 3                     NA
## 4                     NA
## 5                     NA
## 6                     NA

tail() macht das gegenteil tail(tomaten_daten).

Um Ihre Daten direkt in Tabellenform anzuzeigen, können Sie die Funktion View() verwenden oder Ihr Objekt in Workspace von RStudio finden (oben rechsts in RStudio).

Plotten

Grafiken können eine gute Möglichkeit sein, Datensätze darzustellen. Sie sind eine visuelle Darstellung der Beziehung zwischen Variablen, die oft leichter zu verstehen sind als Listen oder Wertetabellen. Sie zeigen normalerweise die Beziehung zwischen zwei oder mehr Variablen. Zum Glück gibt es in R benutzerfreundliche Optionen zum Zeichnen von Datengrafiken.

Erstellen eines Barplots in Basis R

R verfügt über mehrere Systeme zum Erstellen von Diagrammen

  • Basis R
  • Erstellen Sie ein Barplot mit der Funktionen table() und barplot ()
Bedachung <- table(tomaten_daten$Bedachung)

barplot(Bedachung, main="Gewächshausdach",
   xlab="Anzahl der Beobachtungen
")

In Base R sind viele andere Diagramme möglich. Im weiteren Verlauf dieses Tutorials werden wir uns mit anderen Optionen zum Zeichnen mithilfe der ‘Grammar of Graphics’ befassen.

‘Grammar of Graphics’ ggplot2: Übersicht

Es gibt viele Funktionen für Diagramme in R

  • ggplot2 ist eines der elegantesten und vielseitigsten.

  • ggplot implementiert die Grammatik der Grafiken, um Grafiken zu beschreiben und zu erstellen.

  • Machen Sie mehr und schneller, indem Sie ein System lernen und es an vielen Stellen anwenden.

Insallieren sie ggplot2 mit der Funktion install.packages mit install.packages("ggplot2") dann ggplot2 laden mit der Funktion library():

library(ggplot2)

Erstellen eines scatterplot in ggplot2

Erstellen eines scatterplot mit ggplot(), aes() und geom_point() funktionen:

ggplot(data = tomaten_daten, aes(x = Zeitpunkt, y = Anzahl_Blätter)) + 
  geom_point()

Farbe hinzufügen

Farbe hinzufügen in eines scatterplot mit aes() funktionen color option:

ggplot(data = tomaten_daten, aes(x = Zeitpunkt, y = Anzahl_Blätter, color = Salzstress)) + 
  geom_point()

Previous
Next