Saskia A. Otto
BSH 11/02 - 13/02 2019
Wenn Du Objekte in R generierst, erscheinen diese in dem Umgebungsausschnitt unter Global Environment:
x <- 1:10
y <- 1:10
z <- cbind(x,y) # Matrix

ls():x <- 1:10
y <- 1:10
z <- cbind(x,y) # Matrix
ls()
## [1] "x" "y" "z"
rm()x <- 4
x
rm(x)
rm()x <- 4
x
rm(x)
Entferne alle Objekte auf einmal:


| Operator | Verwendung | Beschreibung |
|---|---|---|
| < | a < b | a ist KLEINER als b |
| > | a > b | a ist GRÖSSER als b |
| == | a == b | a ist GLEICH wie b |
| <= | a <= b | a ist KLEINER als oder GLEICH wie b |
| >= | a > = b | a ist GRÖSSER als oder GLEICH wie b |
| != | a!=b | a ist NICHT GLEICH wie b |
# Beispiele für Zahlen
a <- 10
b <- 5
print(a < b) # gleich
print(a >= b) # grösser oder gleich
print(a != b) # nicht gleich
# Beispiele für Zahlen
a <- 10
b <- 5
print(a < b) # gleich
## [1] FALSE
print(a >= b) # grösser oder gleich
## [1] TRUE
print(a != b) # nicht gleich
## [1] TRUE
# Beispiele für Zahlen
a <- 10
b <- 5
print(a < b) # gleich
## [1] FALSE
print(a >= b) # grösser oder gleich
## [1] TRUE
print(a != b) # nicht gleich
## [1] TRUE
# Beispiele für Vektoren
a <- c(7.5, 3, 5)
b <- c(2, 7, 5)
print ( a <= b ) # kleiner oder gleich
print ( a != b ) # nicht gleich
# Beispiele für Zahlen
a <- 10
b <- 5
print(a < b) # gleich
## [1] FALSE
print(a >= b) # grösser oder gleich
## [1] TRUE
print(a != b) # nicht gleich
## [1] TRUE
# Beispiele für Vektoren
a <- c(7.5, 3, 5)
b <- c(2, 7, 5)
print ( a <= b ) # kleiner oder gleich
## [1] FALSE TRUE TRUE
print ( a != b ) # nicht gleich
## [1] TRUE TRUE FALSE


x <- 1:5
x[ x < 4 & x >= 2]
## [1] 2 3
x <- 1:5
x[ x < 4 & x >= 2]
## [1] 2 3
| Step | Usage | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| 1 | x < 4 | TRUE | TRUE | TRUE | FALSE | FALSE |
| 2 | ||||||
| 3 |
x <- 1:5
x[ x < 4 & x >= 2]
## [1] 2 3
| Step | Usage | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| 1 | x < 4 | TRUE | TRUE | TRUE | FALSE | FALSE |
| 2 | x >= 2 | FALSE | TRUE | TRUE | TRUE | TRUE |
| 3 |
x <- 1:5
x[ x < 4 & x >= 2]
## [1] 2 3
| Step | Usage | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| 1 | x < 4 | TRUE | TRUE | TRUE | FALSE | FALSE |
| 2 | x >= 2 | FALSE | TRUE | TRUE | TRUE | TRUE |
| 3 | x < 4 & x >= 2 | FALSE | TRUE | TRUE | FALSE | FALSE |
a <- c(TRUE, TRUE, FALSE, FALSE)
b <- c(TRUE, FALSE, TRUE, FALSE)
print(a | b)
## [1] TRUE TRUE TRUE FALSE
print(a || b)
## [1] TRUE
| Operator | Verwendung | Beschreibung |
|---|---|---|
| : | a:b | Generiert eine Serie von Zahlen beginnend mit dem linken und endend mit dem rechten Operanden |
| %in% | a %in% b | Identifiziert ob ein Element (a) Teil der Elemente in Vektor (b) ist |
| %*% | A %*% t(A) | Multipliziert einen Vektor mit seinem transponierten Vektor |
| Operator | Verwendung | Beschreibung |
|---|---|---|
| : | a:b | Generiert eine Serie von Zahlen beginnend mit dem linken und endend mit dem rechten Operanden |
| %in% | a %in% b | Identifiziert ob ein Element (a) Teil der Elemente in Vektor (b) ist |
| %*% | A %*% t(A) | Multipliziert einen Vektor mit seinem transponierten Vektor. |
%in%
a <- c(25, 27, 76)
b <- 27
print(b %in% a)
## [1] TRUE
print(a %in% b)
## [1] FALSE TRUE FALSE
Was wird folgende Operation zurückgeben (versuche die Antwort ohne R zu finden):
a <- c(6, 80, 107, 164, 208, 53, 216, 268, 65, 283)
a < 60
R checkt für jedes Element in a, ob sein Wert kleiner als 60 ist und gibt dann ein TRUE zurück, ansonsten ein FALSE. Da a ein Vektor mit 10 Elementen ist, enthält der zurückgegebene Vektor 10 logische Elemente.
Wieviele TRUEs erhältst Du bei folgender Operation (versuche die Antwort ohne R zu finden):
a <- c(16, 47, 207)
b <- c(0, 49, 410)
a <= b
R wendet die Operatoren Element-weise an beiden Vektoren an: 16 <= 0? 47 <= 49? 207 <= 410?
2 Werte in a sind kleiner oder gleich den korrespondieren Werten in b (=TRUE), und zwar 47 und 207
Was geben folgende Operationen zurück:
a <- c(4, 5, 1, 8, 8, 10)
b <- c(0, 0, 3, 6, 7, 9); c <- 3
Wenn ein Vektor weniger Elemente enthält als der andere, werden die vorhandenen Elemente für die Element-weisen Vergleiche recycled.
a < b gibt einen logischen Vektor der Länge a bzw. b zurück (=c(FALSE,FALSE,TRUE,FALSE,FALSE,FALSE)), womit dann der Vektor a induziert werden kann. Nur das 3. Element in a (=1) ist kleiner als das korrespondierende Element in b (=3), somit wird nur das 3. Element von a ausgewählt: 1
c wird zuerst recycled (sprich der Wert 3 wird 6mal wiederholt) damit die Element-weisen Vergleiche gemacht werden können. Nur das 3. Element in b hat den gleichen Wert wie das 3. Element in c. Somit wird dessen Zahl wiedergegeben: 3.
c >= b gibt einen Vektor mit 3 TRUEs und 3 FALSEs zurück. Diese werden für die Summenrechnung in 0 und 1 umgewandelt (TRUE =1 und FALSE = 0): 3.
An 6 Tagen wurde gemessen, ob es sonnig (sunny = TRUE) und heiß (hot = TRUE) war. Jetzt wollen wir auf verschiedene Bedingungen testen (versuche auch hier wieder ohne R die Lösung zu finden):
sunny <- c(TRUE, TRUE, TRUE, FALSE, FALSE, FALSE)
hot <- c(FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
Was gibt die folgende Operation zurück?
sunny <- c(TRUE, TRUE, TRUE, FALSE, FALSE, FALSE)
hot <- c(FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
sunny & hot
& ist ein Element-weiser UND Operator: ein TRUE wird nur zurück gegeben wenn es sonnig UND heiß war (both TRUE)
Beide Vektoren haben eine Länge von 6 (6Tagen), der output Vektor hat daher auch die Länge 6. Und da es nur an 1 Tag sonnig und heiß war (an Tag 2) enthält der Vektor nur 1 TRUE und sonst FALSE.
Was gibt die folgende Operation zurück?
sunny <- c(TRUE, TRUE, TRUE, FALSE, FALSE, FALSE)
hot <- c(FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
sunny | hot
| ist ein Element-weiser ODER Operator: ein TRUE wird nur zurück gegeben wenn es sonnig ODER heiß war (mind. einer von beiden muss TRUE sein)
An jedem Tag war es sonnig und/oder heiß außer am 5.Tag (daher 1 FALSE und 5 TRUEs)
Welchen Wert erhältst Du bei folgendem Vektor und den 4 Operationen:
a <- c(6, 80, 107, 164, 208, 53, 216, 268, 65, 283)


Du kannst in folgendem online tutorial auf der tutorialcart website https://www.tutorialkart.com/r-tutorial/r-operators/ mehr zu Operatoren nachlesen.

Keine Sorge! Bald wird Dir nicht mehr langweilig sein.
Dann hol Dir einen Kaffee, lehn Dich zurück und genieße den Rest des Tages...!

Bei weiteren Fragen kontaktieren Sie mich unter:
saskia.otto@uni-hamburg.de
http://www.researchgate.net/profile/Saskia_Otto
http://www.github.com/saskiaotto

Diese Arbeit ist lizensiert unter der
Creative Commons Attribution-ShareAlike 4.0 International License
mit Ausnahme externer
Materialien gekennzeichnet durch die source: Angabe.
Bild auf Titel- und Abschlussfolie: Frühjahrsblüte in der Nordsee
USGS/NASA Landsat:
Spring Color in the North Sea, Landsat 8 - OLI, May 7, 2018
(unter CC0 lizenz)