SOFTWARE
CHAPTER 2: GETTING STARTED WITH R
2.2 DOING SIMPLE CALCULATIONS
operation operator example input example output
addition + 10 + 2 12
subtraction - 9-3 6
multiplication * 5*5 25
division / 9/3 3
power ^ 5^2 25
power ** 4 ** 2 16
kwadraat Sqrt(…) Sqrt(225) 15
absolute waarde Abs(…) Abs(-21) 21
Volgorde van 1. Haakjes (brackets)
bewerkingen 2. Machten (exponenten)
3. Delen (division, /)
4. Vermenigvuldigen (multiplication, *)
Opslaan van een getal Bv. sales <- 350
Bv. royalties <- 200
Kan je ook combineren:
Revenu <- sales * royalties
Stockeren van getallen Bv. sales.by.month. <- c(0, 200, …)
onder een vector Dus je doet c(…)
Info uit vector • Het nste element uit de verzameling
→ sales.by.month.[2] → dan krijg je dus info over het tweede element uit de
verzameling
o Kan je ook nieuwe info aan koppelen
bv. february.sales <- sales.by.month[2]
1
, → sales.by.month.[c(9,10)] → info over 9 en 10e maand → dus voor meerdere
maanden gebruik je weer het c teken
• Aanpassen van een element
bv. sales.by.month.[5] <- 25 → dit past zich dan meteen aan
• Meerde info uit vector ineens
bv. c(2, 3, 4, 5, 6) → ook gewoon typen c(2:6)
• Lengte van een vector:
length(greeting)
Rekenen met vectoren • Elk element uit de vector vermenigvuldigen met een bep waarde
• Andere vectoren bij elkaar optellen, aftrekken, …
Recycling rule Bijvoorbeeld:
x <- c(1, 1, 1, 1)
y <- c(0, 1)
x + y <- (1, 2, 1, 2)
→ werkt zonder melding wnr het overeenkomt (zoals hier 4 elementen in x en 2 in y, stel
5 elementen in x en 2 in y zou je een melding krijgen)
Comments # ergens voor plaatsen → R leest dit niet, is voor jezelf om overzicht te krijgen
CHAPTER 3: MORE FUN WITH R
Errors and warnings
Error = produceert geen output meer
Warning = produceert wel nog output maar het denkt dat er iets niet juist → moet kijken nr de code en
interpreteren van de output met grotere voorzichtigheid
Text data
→ wnr we niet met nummers maar met letters gaan werken
Hoe uitvoeren? 1 element
Bv. greeting <- “hello”
→ deze: “ .. “ horen niet bij de command maar zo weet R dat dat allemaal bij elkaar past
→ is niet 1 vector van 5 elementen maar echt 1 element
Meerdere elementen
Vector met meerdere elementen
Bv. months <- c(“january”, “february”, “march”, …)
Tellen van de Nchar() → gaat tellen hoeveel letters in de totale vector zijn of een element van de vector
letters van de Bv. nchar (greeting) → 5 (= individueel)
vector Nchar (months) → 7 8 5 5 3 4 4 6 9 7 8 8
Werkt ook voor cijfers
Bv. a.number <- 17
Nchar (a.number) → 2
Logical data aka “true” or “false” data
TRUE / FALSE Equality operator → ==
Bv. 2 + 2 == 4 → TRUE
Zo gaat R controleren of een uitspraak true of false is
Logische data True en false kan je gewoon typen als T en F (→ wel hoofdlettergevoelig)
Kan je ook stockeren in een vector
bv. sales.by.month
## [1] 0 100 200 50 0 0 0 0 0 0 0 0
no.sales.this.month <- sales.by.month == 0
no.sales.this.month
## [1] TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRU
E TRUE TRUE
2
, → zo snel zien in welke maand er 0 verdient is
→ kan je ook doen voor vectoren met enkel letters
Numerieke operaties no.sales.this.month + 0, no.sales.this.month * 1 , no.sales.this.month^2 and
met logische compare it no.sales.this.month.
vectoren
[1] 1 0 0 0 1 1 1 1 1 1 1 1
[1] 1 0 0 0 1 1 1 1 1 1 1 1
[1] 1 0 0 0 1 1 1 1 1 1 1 1
[1] TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
TRUE TRUE
→ elke TRUE krijgt waarde 1 en elke FALSE krijgt waarde 0
Andere logische operaties
operation operator example input answer
less than < 2<3 TRUE
less than or equal to <= 2 <= 2 TRUE
greater than > 2>3 FALSE
greater than or equal to >= 2 >= 2 TRUE
equal to == 2 == 3 FALSE
not equal to != 2 != 3 TRUE
not ! !(1==1) FALSE
or | (1==1) | (2==3) TRUE
and & (1==1) & (2==3) FALSE
& teken Beide delen moeten juist zijn anders krijg je een FALSE code
| Maar 1 deel moet juist zijn, bij 2 juiste delen gaat die ook zeggen dat het statement TRUE is
! = not teken
Bv. ! (2 + 2 == 5) wilt zeggen it is not true that 2 + 2 = 5 en dan gaat R zeggen TRUE
Kan ook gebruiken als 2 + 2 != 5 → TRUE
Ander voorbeeld:
stock.levels == "out" | stock.levels == "low"
## [1] FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE
3
, What this does is return TRUE for those elements of stock.levels that are
either "out" or "low" and returns FALSE for all the others.
%in% Zelfde werking als ==
Stel je bent vergeten welke soort data je hebt gestockeerd → aard van de data
1. Class () → kan bv het verschil tss “19-02-2005” en “mijn verjaardag” → kan zien dat de eerste een datim is
2. Mode () → niet gebruiken
3. Typeof () → niet gebruiken
Named arguments
Round() Dichtstbijzijnde gehele getal
Bv. round(3.1415) -- >3
• Default van het aantal digits is dus 0
Afronden op een aantal decimalen
• Gebruik van twee argumenten
o X = het nummer dat je wilt afronden
o digits = aantal decimalen
• Als je argumenten gebruikt dan is de volgorde ook niet belangrijk, zonder wel
Bv. round(3.1415, 2) → 3.14
Bv. round( x = 3.1415, digits = 2)
→ namen van argumenten in sectie 5.1
Piping Ipv sqrt(225) → 225 |> sqrt()
Andere mathematische functies
mathematical.function R.function example.input answer
square root sqrt() sqrt(25) 5
absolute value abs() abs(-23) 23
rounding to nearest round() round(1.32) 1
rounding down floor() floor(1.32) 1
rounding up ceiling() ceiling(1.32) 2
logarithm (base 10) log10() log10(1000) 3
logarithm (base e) log() log(1000) 6.908
exponentiation exp() exp(6.908) 1000.245
sum sum() sum(c(2,1,6)) 9
4