HOC 3: Werken met strings

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/48

encourage image

There's no tags or description

Looks like no tags are added yet.

49 Terms

1
New cards

nchar()

number of characters: telt het aantal tekens

2
New cards

tolower()

convert to lower case: zet alles in kleine letters

3
New cards

toupper()

convert to upper case: zet alles in hoofdletters

4
New cards

casefold()

case folding: om alle letters in een tekst (string) om te zetten naar kleine letters of hoofdletters


heeft 1 belangrijke parameter genaamd upper:

  • upper = FALSE (standaard): zet tekst om naar kleine letters (lowercase).

  • upper = TRUE: zet tekst om naar hoofdletters (uppercase).


5
New cards

chartr()

character translation: bepaalde tekens in vector omzetten naar andere (bv.: om van DNA naar RNA te gaan “T” vervangen door “U”)

6
New cards

abbreviate()

abbreviation: de vector afkorten naar een gevraagd aantal tekens

7
New cards

substring()

substrings of a character vector: een deel van een tekststring (of vector van strings) te extraheren

8
New cards

substr()

substrings of a character vector: een deel van een tekststring (of vector van strings) te extraheren

9
New cards

substr() vs substring()

substr(): je moet een specifieke stopwaarde aangeven (bv.: als je bij een string van 23 tekens van teken 3 tot het laatste teken wilt zien, moet je een specifieke waarde geven (de naam/het cijfer tot waar je wilt); dus: van 3 tot 23)


substring(): je moet geen stopwaarde geven (bv.: als je bij een string van 23 tekens van teken 3 tot het laatste teken wilt zien, moet je geen specifieke waarde geven (je mag “last” gebruiken om de gegevens tot het einde te krijgen); dus: van 3 tot last)

10
New cards

length()

telt het aantal elementen

11
New cards

length() vs nchar()

length(): telt het aantal elementen in de vector

nchar(): telt het aantal tekens in de elementen

12
New cards

sep =

een separator: is een scheidingsfunctie

13
New cards

sep = “ “

sep = “,”

sep = “.”

sep = “_”

…

sep = “ “ : er is geen scheiding

sep = “,” : elementen worden gescheiden door een komma

sep = “.” : elementen worden gescheiden door een punt

sep = “_” : elementen worden gescheiden door een laag streepje

…

14
New cards

collapse

voegt elementen v.h. resultaat samen tot 1 string

15
New cards

readline()

geeft tekst terug

16
New cards

trimws()

verwijdert buitenste witruimte

17
New cards

grepl()

zoeken naar tekstpatronen (reguliere expressies) binnen een tekst of een vector van teksten; antwoord is altijd TRUE of FALSE



bv.:

we hebben een lijst met fruitsoorten:

fruit <- c("appel", "banaan", "aardbei", "peer")


als we willen controleren welke vruchten de letters "aa" bevatten, gebruiken we grepl():

grepl("aa", fruit)

resultaat

[1] FALSE  TRUE  TRUE FALSE
  • "appel" en "peer" bevatten geen "aa" (FALSE).

  • "banaan" en "aardbei" bevatten wel "aa" (TRUE).


18
New cards

\n

nieuwe regel

19
New cards

print() vs cat()

print():

  • laat ruwe data zien zoals R deze intern opslaat

  • result1 ← print(Text)

    • geeft de waarde volledig terug

cat():

  • ( = concatenate, samenvoegen)

  • maakt tekst mooi leesbaar voor de gebruiker

  • result2 ← cat(Text)

    • geeft zelf geen bruikbare data terug aan R

    • het resultaat is leeg ( NULL )


20
New cards

complement

vervangt basen

21
New cards

reverse complement

vervangt basen en keert daarna de volgorde om


1) basen vervangen (complement maken)

r

# Voorbeeldsequentie
dna <- "ATGCGT"

# Vervang A->T, T->A, C->G, G->C
complement <- chartr("ATCG", "TAGC", dna)
print(complement)
# Output: "TACGCA"



2) complement omkeren

r

# 1. Knip de string in losse karakters (geeft een lijst terug)
gesplitst <- strsplit(complement, split = "")

# 2. Haal de losse letters uit de lijst en draai de volgorde om
omgedraaid <- rev(gesplitst[[1]])

# 3. Plak de letters weer samen tot één string
reverse_complement <- paste(omgedraaid, collapse = "")
print(reverse_complement)
# Output: "ACGCAT"


<p>vervangt basen en keert daarna de volgorde om</p><p></p><p>1) basen vervangen (complement maken)</p><p>r</p><pre><code># Voorbeeldsequentie
dna &lt;- "ATGCGT"

# Vervang A-&gt;T, T-&gt;A, C-&gt;G, G-&gt;C
complement &lt;- chartr("ATCG", "TAGC", dna)
print(complement)
# Output: "TACGCA"</code></pre><p></p><p></p><p>2) complement omkeren</p><p>r</p><pre><code># 1. Knip de string in losse karakters (geeft een lijst terug)
gesplitst &lt;- strsplit(complement, split = "")

# 2. Haal de losse letters uit de lijst en draai de volgorde om
omgedraaid &lt;- rev(gesplitst[[1]])

# 3. Plak de letters weer samen tot één string
reverse_complement &lt;- paste(omgedraaid, collapse = "")
print(reverse_complement)
# Output: "ACGCAT"</code></pre><p></p>
22
New cards

package installeren

install.packages()

23
New cards

install.packages(“readxl”)

installeert readxl

24
New cards

library(readxl)

maakt de functies beschikbaar zonder voorvoegsel

25
New cards

head(x)

toont eerste rijen v. een dataset

26
New cards

str(x)

toont de structuur en types v. een dataset

27
New cards

welk gereedschap past bij h. bestand? (bekijken)

knowt flashcard image
28
New cards

read.csv()

gebruikt standaard komma’s als scheiding

29
New cards

read.cvs2()

gebruikt puntkomma’s en een decimale komma als scheiding

30
New cards

leesbaar programmeren

  • betekenisvolle namen

    • tips:

      • gebruik letters, cijfers, punten en underscores

      • vermijd gereserveerde woorden zoals “if” en “for”

      • R onderscheidt hoofdletters v. kleine letters!!!

    • bv.: staal_id, bereken_bmi,…


  • structuur v. een script

    • splits code op → samenhang verbetert

    • beschrijf bovenaan h. doel


  • commentaar en witruimte: maak redenering leesbaar

    • commentaarregel begint met #


  • blokken en inspringing: consistente opmaak helpt fouten zien

    • zet bij vooerkeur een if-blok op dezelfde regel als de voorafgaande accolade


31
New cards

uitvoer vs. teruggegeven waarde

knowt flashcard image
32
New cards

soorten vectoren

1) atomaire vectoren (homogeen)

  • eendimensionale reeksen waar elk element verplicht v. hetzelfde gegevenstype is

  • soorten:

    • double (or numeric): slaat decimale getallen op

    • integer: bevat uitsluitend gehele getallen

    • logical: vertegenwoordigt logische waarden die alleen TRUE of FALSE kunnen zijn

    • character: voor tekst en tekenreeksen

    • complex: slaat complexe getallen op met een reëel en imaginair deel

    • raw: bewaart gegevens op het laagste niveau, als ruwe bytes


2) lijsten (heterogeen)

  • gemengde inhoud: kunnen verschillende gegevenstypes tegelijk bevatten

  • geneste structuur: kan bv. een combinatie v. getallen, tekst en zelfs andere lijsten opslaan


3) afgeleide objecten

  • R bouwt complexere structuren door extra eigenschappen aan vectoren of lijsten toe te voegen

  • soorten:

    • matrices en arrays: voegen structuren (rijen en kolommen) toe aan atomaire vector

    • factors: atomaire integer-vectoren met tekstlabels

      • voor categorische data

    • date time: datum- en tijdobjecten zijn numerieke atomaire vectoren die h. aantal dagen of seconden sinds een startdatum tellen


    • data frames: bekende datatabellen; zijn technisch gezien lijsten waarin elke kolom een atomaire vector van gelijke lengte is

    • “complex” objects: geavanceerde structuren, zoals de resultaten van een statistisch model, combineren vaak zowel lijsten als atomaire vectoren


<p>1) atomaire vectoren (homogeen)</p><ul><li><p>eendimensionale reeksen waar elk element verplicht v. hetzelfde gegevenstype is</p></li><li><p>soorten:</p><ul><li><p>double (or numeric): slaat decimale getallen op</p></li><li><p>integer: bevat uitsluitend gehele getallen</p></li><li><p>logical: vertegenwoordigt logische waarden die alleen<span> </span><code>TRUE</code><span> of </span><code>FALSE</code><span> kunnen zijn</span></p></li><li><p><span>character: voor tekst en tekenreeksen</span></p></li><li><p><span>complex: slaat complexe getallen op met een reëel en imaginair deel</span></p></li><li><p><span>raw: bewaart gegevens op het laagste niveau, als ruwe bytes</span></p></li></ul></li></ul><p></p><p>2) lijsten (heterogeen)</p><ul><li><p>gemengde inhoud: kunnen verschillende gegevenstypes tegelijk bevatten</p></li><li><p>geneste structuur: kan bv. een combinatie v. getallen, tekst en zelfs andere lijsten opslaan</p></li></ul><p></p><p>3) afgeleide objecten</p><ul><li><p>R bouwt complexere structuren door extra eigenschappen aan vectoren of lijsten toe te voegen</p></li><li><p>soorten:</p><ul><li><p>matrices en arrays: voegen structuren (rijen en kolommen) toe aan atomaire vector</p></li><li><p>factors: atomaire integer-vectoren met tekstlabels</p><ul><li><p>voor categorische data</p></li></ul></li><li><p><span style="color: rgb(194, 194, 194);">date time: d</span><span style="color: rgb(194, 194, 194);">atum- en tijdobjecten zijn numerieke atomaire vectoren die h. aantal dagen of seconden sinds een startdatum tellen</span></p></li></ul><p></p><ul><li><p><span>data frames: bekende datatabellen; zijn technisch gezien lijsten waarin elke kolom een atomaire vector van gelijke lengte is</span></p></li><li><p><span>“complex” objects: geavanceerde structuren, zoals de resultaten van een statistisch model, combineren vaak zowel lijsten als atomaire vectoren</span></p></li></ul></li></ul><p></p>
33
New cards

datatypes

knowt flashcard image
34
New cards

dimensieonaliteit: reeks, tabel of meerdere lagen

knowt flashcard image
35
New cards

verschillende soorten structuren


<p></p>
36
New cards

c()

maakt een character-vector

bv.: c(12, “bloed”)

37
New cards

kenmerken factoren

  • representeren categorische variabelen

  • bevatten integercodes met labels in levels

  • kunnen geordend of ongeordend zijn

  • numeriek label is niet hetzelfde als numerieke meting


38
New cards

byrow

  • in welke volgorde gegevens in een matrix worden geplaatst

  • standaard staat deze waarde op FALSE

    • R vult matrix altijd kolom voor kolom in plaats van rij voor rij

  • bv.:

    • r

      # 1. Standaard (byrow = FALSE): vult per kolom
      matrix(1:6, nrow = 2, ncol = 3, byrow = FALSE)
      # Resultaat:
      #      [,1] [,2] [,3]
      # [1,]    1    3    5
      # [2,]    2    4    6
      
      # 2. Met byrow = TRUE: vult per rij
      matrix(1:6, nrow = 2, ncol = 3, byrow = TRUE)
      # Resultaat:
      #      [,1] [,2] [,3]
      # [1,]    1    2    3
      # [2,]    4    5    6


39
New cards

diag()

maakt een diagonaalmatrix met het argument


<p>maakt een diagonaalmatrix met het argument</p><p></p>
40
New cards

rbind()

om vectoren, matrices of data frames verticaal onder elkaar te plakken tot één groter object


bv.:

r

# Twee kleine data frames maken
df1 <- data.frame(Naam = c("Jan", "Piet"), Leeftijd = c(25, 30))
df2 <- data.frame(Naam = c("Klaas", "Marie"), Leeftijd = c(28, 35))

# Samenvoegen onder elkaar
totaal <- rbind(df1, df2)


41
New cards

cbind()

om vectoren, matrices of data frames horizontaal aan elkaar te plakken tot één groter object

42
New cards

%*%

berekent het matrixproduct → ncol(A) = nrow(B)

43
New cards

$-operator

  • algemene schrijfwijze is objectnaam</code></p></li><li><p>omeenspecifiekonderdeel(zoalseenkolomofelement)bijnaamoptehalenofaantepassenuiteendataframe,eenlijst(list)ofeenenvironment</p></li><li><p>bv.:</p><ul><li><p><span><strong>kolomuiteendataframehalen:</strong></span></p><ul><li><p><span>stel:datasetmetdenaam</span><code>klanten</code><span>endaarinziteenkolom</span><code>leeftijd</code></p></li><li><p><code>klantennaam</code></p></li><li><p>om een specifiek onderdeel (zoals een kolom of element) bij naam op te halen of aan te passen uit een dataframe, een lijst (list) of een environment</p></li><li><p>bv.:</p><ul><li><p><span><strong>kolom uit een dataframe halen:</strong></span></p><ul><li><p><span>stel: dataset met de naam </span><code>klanten</code><span> en daarin zit een kolom </span><code>leeftijd</code></p></li><li><p><code>klantenleeftijd geeft je alle waarden uit die kolom als een vector


  • nieuwe kolom toevoegen:

    • je kunt de operator ook gebruiken om data toe te voegen of te overschrijven

    • met klantenland<−"Belgie¨"</code><span>maakjedirecteennieuwekolomaan</span></p></li></ul></li></ul><p></p><ul><li><p><span><strong>elementuiteenlijst(list)selecteren:</strong></span></p><ul><li><p><span>bijeenlijstwerkthetprecieshetzelfde</span></p></li><li><p><span>als</span><code>mijnlijst</code><span>eenonderdeel</span><code>scores</code><span>heeft,roepjedatopmet</span><code>mijnlijstland <- "België"</code><span> maak je direct een nieuwe kolom aan</span></p></li></ul></li></ul><p></p><ul><li><p><span><strong>element uit een lijst (list) selecteren:</strong></span></p><ul><li><p><span>bij een lijst werkt het precies hetzelfde</span></p></li><li><p><span>als </span><code>mijn_lijst</code><span> een onderdeel </span><code>scores</code><span> heeft, roep je dat op met </span><code>mijn_lijstscores


44
New cards

bij dataframes/matrices: [[ ]]

neemt de inhoud v. 1 kolom

45
New cards

bij dataframes/matrices: [ ]

[ ] met een kolomnaam bewaart een dataframe

46
New cards

apply(), lapply(), sapply()

knowt flashcard image
47
New cards

bij for-lus: for (i in seq_along(x))

lus waarbij voor elk element in het object x één keer wordt uitgevoerd, waarbij de variabele i steeds de positie (index) van dat element aanneemt

48
New cards

lus stoppen

break

49
New cards

“next” bij een lus

  • om de rest v.d. huidige iteratie (stap) in een lus over te slaan en direct door te gaan naar de volgende iteratie

  • de lus zelf wordt hierdoor dus niet afgebroken, maar hervat meteen bij de volgende waarde