1
Analyses toolbox
basics matrixes maken, toevoegen en verwijderen kolommen, sum van de
data, extracten van de data en subsetten
Matrix maken van je dataframe.
Eerst vector aanmaken: v <- c(1,2,3,4,5,6,7,8,9) of v <- c(1:9)
4*3 matrix: nrow=4 en ncol=3
Daarna een matrix aanmaken van de vector met de functie matrix:
A <- matrix(c(1:9), nrow=3, ncol=3), A is de objectnaam voor de matrix
byrow= FALSE -> dan wordt de matrix gevuld per column, byrow=TRUE -> dan wordt de matrix
gevuld per rij
matrix creëren of per rij of per column bijvoorbeeld : per kolom=byrow=FALSE
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 11 21 31 41 51 61 71 81 91
[2,] 2 12 22 32 42 52 62 72 82 92
[3,] 3 13 23 33 43 53 63 73 83 93
[4,] 4 14 24 34 44 54 64 74 84 94
[5,] 5 15 25 35 45 55 65 75 85 95
[6,] 6 16 26 36 46 56 66 76 86 96
[7,] 7 17 27 37 47 57 67 77 87 97
[8,] 8 18 28 38 48 58 68 78 88 98
[9,] 9 19 29 39 49 59 69 79 89 99
[10,] 10 20 30 40 50 60 70 80 90 100
byrow=TRUE
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 2 3 4 5 6 7 8 9 10
[2,] 11 12 13 14 15 16 17 18 19 20
[3,] 21 22 23 24 25 26 27 28 29 30
[4,] 31 32 33 34 35 36 37 38 39 40
[5,] 41 42 43 44 45 46 47 48 49 50
[6,] 51 52 53 54 55 56 57 58 59 60
[7,] 61 62 63 64 65 66 67 68 69 70
[8,] 71 72 73 74 75 76 77 78 79 80
[9,] 81 82 83 84 85 86 87 88 89 90
[10,] 91 92 93 94 95 96 97 98 99 100
Als je meer dn 10 rijen wilt dan moet je geen nrow aangeven maar alleen ncol anders krijg je
alleen de eerste 10 rijen
Vectors creëren:
Creeren van vectors bv c(2, 4, 6)
c(2:6) -> dan krijg je alle getallen van 2 tm 6
seq (2,3, by=0.5) -> dan krijg je de getallen 2 tm 3 en dan telkens met 0.5 ertussen , dus:
2.0 2.5 3.0
, 2
rep(1:2, times=3) -> herhalen van 1 en 2 drie keer, 121212 (herhalen van de vector)
rep(1:2, each=3) -> herhalen van de 1 en 2 , maar dan elke drie keer, 111222
Selecteren van rijen en kolommen in een matrix, wanneer je bijvoorbeeld een kolom of rij eruit
wilt verwijderen
In bovenstaand voorbeeld heb je de matrix genoemd als je object A, dus bij het selecteren van een
rij -> A[2,] , hierbij selecteer je row 2
A[,2] -> hierbij selecteer je kolom 2 (en alle elementen in de rijen van kolom 2)
A[2,3] -> Hierbij selecteer je een element, in dit geval een element van de tweede rij en derde kolom
A[1:100, 1] -> hierbij wil je de 100 rijen (elementen) van de eerste kolom
A[ 1:100, “”] -> hierbij wil je 100 rijen en kan je voor “’’ een kolomnaam intypen
A[, 1:2] -> selecteer kolom 1 en 2
Laatste 3 rijen en alle kolommen selecteren die erbij horen:
subB<- B[2:4, 1:3]
Transposen van een matrix:
De getransponeerde matrix van een getransponeerde matrix is de oorspronkelijke matrix.
t(m)
opslaan als object mt <- t(m)
matrix vermenigvuldigen:
A %*% mt
Kolom binding van een matrix :
cbind(vector1, vector2), vector1 en vector2 zijn je kolommen of rijen die je eerder hebt geselecteerd
van je matrixes , binden van kolommen:
vector1 vector2
[1,] -124 2944700
[2,] -126 2949400
[3,] 24 2954100
[4,] -84 2958800
rbind (vector1, vector2), binden van rijen:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
vector1 -124 -126 24 -84 -6 240 -6 187 -21 -22
vector2 2944700 2949400 2954100 2958800 2963500 2968200 2972900 2977600
2982300 2987000
[,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
vector1 -47 51 0 262 22 -170 -79 3 172 40
Een zin opslaan als objectnaam sentence :
sentence <- “ The quick brown fox jumps over the lazy dog”
, 3
splitten zin per word:
words <- strsplit("The quick brown fox jumps over the lazy dog"," " ), hierbij zit er wel een spatie
tussen de aanhalingstekens, dus wordt de zin gesplitst per woord
splitten zin per letter:
strsplit("The quick brown fox jumps over the lazy dog", ""), hierbij zit er geen spatie tussen de
aanhalingstekens, dus word de zin per letter gesplitst
Extracten van elementen van een vector :
words <- words [[2]] , dit geeft je het eerste element van je zin (ook wel je vector genoemd)
Vervangen van de sentence met bv underscores of wat anders :
gsub(pattern, replace, x) -> gsub(' ', '_', words) words is dus je sentence , (met een spatie bij jet
aanhalingstekens die bij pattern staan)
x -> je string/vector , pattern-> waar je iets wilt wijzigen, replace -> met wat je het wilt wijzigen
Toevoegen van een kolom aan je dataset
data$column1 <- NA , je kolom heet nu column 1, gevuld met NA
Verwijderen van kolommen uit je dataset:
data[, "column3"]<- NULL
Som van data in je kolommen bv hoeveel mannen en hoeveel vrouwen :
sum(data[, “columnname”]==”fail”) of bv sum(data[, “columnname”==1)
W en N omzetten in je kolom naar 1 en 0, dit keer zonder for loop of functie
Omzetten : data[data[, “columnname”]==”W”, “columnname”] <- “0”
Meerdere rijen extracten van je data:
df <- data [c(1,2,5:10), ] , hierbij selecteer je rij 1, 2 en 5 tm 10
meerdere kolommen extracten (selecteren):
df <- data[, c (“columnname”, “columnname”)]
Wat als we de rijen willen selecteren waar sex bv gelijk is aan o?:
where_0 <- data[, “sex”]==0 , hierdoor krijg je een TRUE FALSE string in R studio
voor de hele data waar de data gelijk is aan 0?:
df_where_0 <- data [where_0, ]
which gebruiken in R studio:
df <- data[which(data[, "Column2"]==286),], dit geeft aan in welke rij de 286 zich bevindt , selecteer
alleen de rijen waar de getallen 286 voorkomen
negatieve getallen in je kolom veranderen
, 4
abs (data$column3) of abs(data[, "Column2"])
for loop gebruiken om je negatieve data om te zetten naar positieve data:
Eerst vector aanmaken:
columns<- c("Hs","Hmax", "Tz", "Tp", "Peak.Direction", "SST")
for(i in columns){
data[, i] <- abs(data[,i])
}