Terug naar Blog
Blog

R leren | Deel 2 | Variabelen & Functies

Dec 10, 2020·5 min read·Palomi Jain
#Data Analytics#Data Science#R#Rstudio
R leren | Deel 2 | Variabelen & Functies

R leren | Deel 2 | Variabelen & Functies


Variabelen

  • x <- (1:10)
  • x = (1:10)
  • (1:10) -> x
  • assign("x", 1:10)

Al de bovenstaande manieren wijzen een array van 1 tot 10 toe aan variabele x.

Dit zijn de toewijzingsoperators =, ->, <- .

Een ander veel gebruikte functie voor het maken van een vector of lijst is de c(…) functie.

  • c(1,10:13) De uitvoer hiervan zou een array 1 10 11 12 13 zijn. Dit betekent het samenvoegen van door komma's gescheiden objecten/variabelen.
  • c(1:5, 10.5, "next") De uitvoer hiervan zou een array "1" "2" "3" "4" "5" "10.5" "next" zijn.
  • y = c(1,2,3) & x = c(y, 1, y) Dit is een voorbeeld van het gebruiken van variabelen om nieuwe variabelen aan te maken. Hier zou de waarde van y 1 2 3 zijn terwijl die van x 1 2 3 1 1 2 3 zou zijn.

Voor verder gebruik van de c(…) functie verwijzen naar-

c functie | R Documentatie Dit is een generieke functie die zijn argumenten combineert. De standaardmethode combineert zijn argumenten om een vector te vormen…www.rdocumentation.org

Ingebouwde Functies

  • c(…) Zoals uitgelegd hierboven.
  • ls() of objects()Geeft een lijst van bestaande objecten die gemaakt zijn.
  • rm("x")Verwijdert een object. De parameter is de naam van het object.
  • sum("x")Geeft de som van de vector x. Bijvoorbeeld, als x is 1 2 3 1 1 2 3 dan zou sum("x")13 zijn.
  • sqrt("x")Geeft de vierkantswortel van de vector x. Bijvoorbeeld als x is 1 4 9 dan zou sqrt("x") een andere vector zijn met waarden 1 2 3.
  • seq(…)Deze functie wordt gebruikt om een reeks getallen te genereren. Het neemt verschillende parameters zoals from (Beginwaarde van reeks), to (Eindwaarde van reeks), by (Getal waarmee de reeks moet worden verhoogd), length.out (Lengte van reeks) en along.with (Dit is een lijst van vector met lengte n en wordt alleen gebruikt om de lengte van deze doorgegeven lijst te krijgen. Vreemd 😷) Voorbeeld:- seq(from=1, to=4, by=0.5) — Geeft een reeks van 1 tot 4 met 0.5 verhoging. Meer over seq(…) hier.
  • paste(…) Deze functie wordt gebruikt om strings te maken met behulp van een aaneenschakeling van vectoren met 2 parameters, te weten sep & collapse. sep biedt een scheidingsteken tussen de aaneengekoppelde vectoren terwijl collapse een scheidingsteken biedt dat de waarden in de aaneengekoppelde vector aaneenschakelt. (Inception? 🤒) Laten we het met enkele voorbeelden leren. paste("xyz", 1:3)"xyz 1" "xyz 2" "xyz 3" (Dit is zonder sep & collapse) paste("xyz", c(1,2,"variable",3), sep=",") "xyz,1" "xyz,2" "xyz,variable" "xyz,3" (Dit is alleen met sep ) paste(c(1:5), c(5:10), sep = ": ", collapse = "; ")"1: 5; 2: 6; 3: 7; 4: 8; 5: 9; 1: 10" (Dit is met sep en collapse; Merk hier op dat dit een enkele string vormt 😄.) Meer over paste(…) hier.
  • rep(x, …) Zoals de naam al aangeeft, wordt deze functie gebruikt om de bestaande vector te herhalen. De parameters die deze functie kan aannemen zijn times (Aantal keren dat de vector moet worden herhaald), length.out (Gewenste lengte van uitvoervector) & each (Aantal keren dat elk element van de vector moet worden herhaald) rep(c(1,2,3), 3) of rep(c(1:3), times=3)1 2 3 1 2 3 1 2 3 rep(c(1:3), each=3)1 1 1 2 2 2 3 3 3 Meer over rep(x, …) hier.

Door gebruiker gedefinieerde functies

Het onderstaande voorbeeld toont een eenvoudige manier om een eenregelige functie te schrijven die het kwadraat van een variabele retourneert. De functienaam hier is fn.

fn <- function(a) {a*a}
fn(10)

Voorbeeld van een blok code in een functie.

fn -> function(a, b) {

c = a * b

c = c + b

print(x)

}
fn(10, 20)

Functies met lussen,if-else.

primeNumber = function(n) {
  if(n>=2) {
    s = seq(2,n)

p = c() #Initialiseren van de vector die priemgetallen opslaat
    for(i in seq(2,n)) {

if(any(s == i) {

p = c(p, i)

s = c(s[(s%%i) != 0], i)

}

}

return(p)

} else {

stop("Invoer groter dan 2")

}

}

Het bovenstaande voorbeeld retourneert een vector met alle priemgetallen tot n doorgegeven aan de functie. De stop functie stopt hier de uitvoering en gooit een fout.

De initiële p = c() wordt gebruikt om de vector te initialiseren die het priemgetal opslaat. En s = seq (2,n) wordt gebruikt om de vector tot te initialiseren, die vervolgens wordt herhaald.

De lus controleert of de waarde aanwezig is in de vector s die eerder is gedefinieerd met behulp van de any functie. En als deze overeenkomt, voegt het die waarde toe aan de priemvector en werkt het de te controleren vector bij, d.w.z. s met alle getallen die niet deelbaar zijn door de huidige i

Aan het einde van de lus bevat de p vector alle priemgetallen.


Referenties


Dank je voor het lezen. In mijn volgende artikel zal ik plot functies uitleggen. Daarnaast enkele inzichten in pakketten & gegevenssets.

Ook, als je deel 1 nog niet hebt gelezen. Je kunt het hier lezen.

Zet je vragen hieronder. Suggesties zijn welkom. 🙌