32
R- Grundlagen Stefan Heyder 07. März 2019 TU Ilmenau

R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

R- Grundlagen

Stefan Heyder

07. März 2019

TU Ilmenau

Page 2: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Einleitung

Arithmetik

Funktionen

Logik

Variablen

Datentypen

Vektoren

Fehlende Daten (NA)

Page 3: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Einleitung

Arithmetik

Funktionen

Logik

Variablen

Datentypen

Vektoren

Fehlende Daten (NA)

Page 4: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Warum R?

Ï KostenlosÏ Open-SourceÏ Programmiersprache⇝ Hoher Grad an KonfigurationsmöglichkeitenÏ CommunityÏ RStudio

Slide 1 of 18Einleitung

Page 5: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Base R vs. Tidyverse

Base RÏ StandardfunktionalitätenÏ Plot Fine-tuning (z.B. Veröffentlichung)Ï Organisch gewachsen

TidyverseÏ Sammlung von Paketen ( ggplot2, tibble, magrittr ...)Ï Fokus auf Syntax, Vereinheitlichung und sinnvolle Standards

Mehrere Möglichkeiten Probleme zu lösen!

Slide 2 of 18Einleitung

Page 6: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Base R vs. Tidyverse

Base RÏ StandardfunktionalitätenÏ Plot Fine-tuning (z.B. Veröffentlichung)Ï Organisch gewachsen

TidyverseÏ Sammlung von Paketen ( ggplot2, tibble, magrittr ...)Ï Fokus auf Syntax, Vereinheitlichung und sinnvolle Standards

Mehrere Möglichkeiten Probleme zu lösen!

Slide 2 of 18Einleitung

Page 7: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Base R vs. Tidyverse

Base RÏ StandardfunktionalitätenÏ Plot Fine-tuning (z.B. Veröffentlichung)Ï Organisch gewachsen

TidyverseÏ Sammlung von Paketen ( ggplot2, tibble, magrittr ...)Ï Fokus auf Syntax, Vereinheitlichung und sinnvolle Standards

Mehrere Möglichkeiten Probleme zu lösen!

Slide 2 of 18Einleitung

Page 8: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Einleitung

Arithmetik

Funktionen

Logik

Variablen

Datentypen

Vektoren

Fehlende Daten (NA)

Page 9: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

R als Taschenrechner

2 + 2

## [1] 4

1 - 2

## [1] -1

3.1234 * 111

## [1] 346.6974

3 / 5

## [1] 0.6

2 ^ 5

## [1] 32

Slide 3 of 18Arithmetik

Page 10: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Rechnen mit Restklassen

13 %/% 3

## [1] 4

13 %% 3

## [1] 1

pi %/% 3

## [1] 1

pi %% 3

## [1] 0.1415927

Weiteres zu Arithmetik in der Hilfe:

?Arithmetichelp(Arithmetic)

Slide 4 of 18Arithmetik

Page 11: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Rechnen mit Restklassen

13 %/% 3

## [1] 4

13 %% 3

## [1] 1

pi %/% 3

## [1] 1

pi %% 3

## [1] 0.1415927

Weiteres zu Arithmetik in der Hilfe:

?Arithmetichelp(Arithmetic)

Slide 4 of 18Arithmetik

Page 12: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Einleitung

Arithmetik

Funktionen

Logik

Variablen

Datentypen

Vektoren

Fehlende Daten (NA)

Page 13: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Funktionsaufrufe

log(32)

## [1] 3.465736

# R erlaubt Übergabe von Argumentnamenlog(32, base = 2)

## [1] 5

sin(pi)

## [1] 1.224647e-16

cos(pi)

## [1] -1

sqrt(10)

## [1] 3.162278

exp(1)

## [1] 2.718282

Slide 5 of 18Funktionen

Page 14: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Einleitung

Arithmetik

Funktionen

Logik

Variablen

Datentypen

Vektoren

Fehlende Daten (NA)

Page 15: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Wahr und Falsch

TRUE

## [1] TRUE

FALSE

## [1] FALSE

# AbkürzungT

## [1] TRUE

F

## [1] FALSE

Slide 6 of 18Logik

Page 16: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Logikverknüpfungen

TRUE & FALSE

## [1] FALSE

!TRUE

## [1] FALSE

!FALSE

## [1] TRUE

T | F

## [1] TRUE

1 > 2 | 2 > 1

## [1] TRUE

Slide 7 of 18Logik

Page 17: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Einleitung

Arithmetik

Funktionen

Logik

Variablen

Datentypen

Vektoren

Fehlende Daten (NA)

Page 18: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Zuweisung

# Zuweisungx <- 5# Ausgabex

## [1] 5

# Auch möglich, aber Vorsicht vor benannten Argumenten!x = 5# Ebenfalls möglich, aber schlechter Stil5 -> x

Slide 8 of 18Variablen

Page 19: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Namenskonventionen

Ï Name starten mit einem BuchstabenÏ Namen unterscheiden zwischen Groß- und Kleinbuchstaben

x <- 5X <- 4x == X

## [1] FALSE

Ï Namen können Buchstaben, Punkte, Zahlen oder Unterstriche enthalten. Verschieden Möglichkeiten langeVariablen zu benennen:

langer.variablen.namelanger_variablen_namelangerVariablenName

Slide 9 of 18Variablen

Page 20: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Einleitung

Arithmetik

Funktionen

Logik

Variablen

Datentypen

Vektoren

Fehlende Daten (NA)

Page 21: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Datentypen

Ï logical — TRUE oder FALSEÏ integer — GanzzahlenÏ numeric — GleitkommazahlenÏ complex — komplexe Zahlen z.B. 1+ iÏ character — Zeichenfolgen

Feststellen des Typs mit typeof

typeof(TRUE)

## [1] ”logical”

typeof(”string”)

## [1] ”character”

Slide 10 of 18Datentypen

Page 22: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Datentypen

Ï logical — TRUE oder FALSEÏ integer — GanzzahlenÏ numeric — GleitkommazahlenÏ complex — komplexe Zahlen z.B. 1+ iÏ character — Zeichenfolgen

Feststellen des Typs mit typeof

typeof(TRUE)

## [1] ”logical”

typeof(”string”)

## [1] ”character”

Slide 10 of 18Datentypen

Page 23: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Einleitung

Arithmetik

Funktionen

Logik

Variablen

Datentypen

Vektoren

Fehlende Daten (NA)

Page 24: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Vektoren

Ï R ist Vektorbasiert!

# Erstellen einfacher Zahlenfolgec(1, 2, 3, 4, 5)

## [1] 1 2 3 4 5

# Vektoren sind eindimensionalc(1, c(2, c(3, 4), 5))

## [1] 1 2 3 4 5

1:30

## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23## [24] 24 25 26 27 28 29 30

seq(1, 30, 1)

## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23## [24] 24 25 26 27 28 29 30

Ï Viele Funktion sind vektorisiert

sin(1:5)

## [1] 0.8414710 0.9092974 0.1411200 -0.7568025 -0.9589243

Slide 11 of 18Vektoren

Page 25: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Rechnen mit Vektoren

1:3 + 4:6

## [1] 5 7 9

1:3 * 4:6

## [1] 4 10 18

# Vektoren werden wiederholt!1:5 + 1

## [1] 2 3 4 5 6

1:6 + 1:3

## [1] 2 4 6 5 7 9

1:5 > 2

## [1] FALSE FALSE TRUE TRUE TRUE

sum(1:5)

## [1] 15

mean(1:5)

## [1] 3

Slide 12 of 18Vektoren

Page 26: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Vektoren und Datentypen

Vektoren bestehen immer aus Werten des gleichen Datentyps. Werden gemischte Datentypen angegeben, sowerden diese konvertiert

x <- c(TRUE, 2, 3)x

## [1] 1 2 3

typeof(x)

## [1] ”double”

x <- c(2, 4, ”5”)x

## [1] ”2” ”4” ”5”

typeof(x)

## [1] ”character”

# Konvertierungas.numeric(x)

## [1] 2 4 5

Slide 13 of 18Vektoren

Page 27: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Faktoren

Datentyp für kategorische Variablen mit festem Wertebereich

familienstand <- c(”ledig”, ”verheiratet”, ”ledig”, ”verheiratet”)familienstand <- factor(familienstand)familienstand

## [1] ledig verheiratet ledig verheiratet## Levels: ledig verheiratet

levels(familienstand)

## [1] ”ledig” ”verheiratet”

# Schlägt fehltfamilienstand[2] <- ”geschieden”

## Warning in ‘[<-.factor‘(‘*tmp*‘, 2, value = ”geschieden”): invalid factor level, NAgenerated

familienstand <- factor(familienstand, levels = c(levels(familienstand), ”geschieden”))familienstand[2] <- ”geschieden”familienstand

## [1] ledig geschieden ledig verheiratet## Levels: ledig verheiratet geschieden

Slide 14 of 18Vektoren

Page 28: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Elementzugriff

LETTERS

## [1] ”A” ”B” ”C” ”D” ”E” ”F” ”G” ”H” ”I” ”J” ”K” ”L” ”M” ”N” ”O” ”P” ”Q”## [18] ”R” ”S” ”T” ”U” ”V” ”W” ”X” ”Y” ”Z”

(x <- LETTERS[3])

## [1] ”C”

(x <- LETTERS[c(1:5, 1)])

## [1] ”A” ”B” ”C” ”D” ”E” ”A”

(x <- sample(1:20, 10, replace = TRUE))

## [1] 12 20 19 11 11 2 18 1 8 6

x < 10

## [1] FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE TRUE

which(x < 10)

## [1] 6 8 9 10

x[ x < 10 ]

## [1] 2 1 8 6

Slide 15 of 18Vektoren

Page 29: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Weiteres zu Vektoren

# Überprüfen ob Wert vorhanden istx <- 1:51 %in% x

## [1] TRUE

0 %in% x

## [1] FALSE

# Länge von Vektorenlength(x)

## [1] 5

names(x) <- c(”Erster”, ”Zweiter”, ”Dritter”, ”Vierter”, ”Fünfter”)x

## Erster Zweiter Dritter Vierter Fünfter## 1 2 3 4 5

x[”Zweiter”]

## Zweiter## 2

Slide 16 of 18Vektoren

Page 30: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Einleitung

Arithmetik

Funktionen

Logik

Variablen

Datentypen

Vektoren

Fehlende Daten (NA)

Page 31: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

NA

Ï Fehlende Daten werden mit NA erfasst.Ï Da NA für fehlende Daten Stehen, können zwei NA Instanzen unterschiedlich sein. Das erklärt diese Ausgabe:

NA == NA

## [1] NA

Ï Um zu überprüfen, ob eine Variable NA ist, verwendet man is.na:

x <- c(1,2,3,NA,5,NA,7,NA, 5, 3, 7)is.na(x)

## [1] FALSE FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE

# Wie viele NA sind in x?sum(is.na(x))

## [1] 3

# Wo stehen die NA?which(is.na(x))

## [1] 4 6 8

Slide 17 of 18Fehlende Daten (NA)

Page 32: R- Grundlagen - Workshop Statistik mit R€¦ · WarumR? ˇ Kostenlos ˇ Open-Source ˇ Programmiersprache⇝HoherGradanKonfigurationsmöglichkeiten ˇ Community ˇ RStudio Slide1

Verhalten von NA

Ï NA kann Verhalten von Funktionen beeinflussen:

mean(x)

## [1] NA

sd(x)

## [1] NA

table(x)

## x## 1 2 3 5 7## 1 1 2 2 2

mean(x, na.rm = T)

## [1] 4.125

sd(x, na.rm = T)

## [1] 2.232071

table(x, useNA = ”ifany”)

## x## 1 2 3 5 7 <NA>## 1 1 2 2 2 3

Slide 18 of 18Fehlende Daten (NA)