Tilbage til Blog
Blog

Læring i R | Del 2 | Variabler og funktioner

Dec 10, 2020·5 min read·Palomi Jain
#Data Analytics#Data Science#R#Rstudio
Læring i R | Del 2 | Variabler og funktioner

Lær R | Del 2 | Variabler & Funktioner


Variabler

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

Alle ovenstående måder tildeler en array fra 1 til 10 til variablen x.

Disse er tildelingsoperatorerne =, ->, <- .

En anden almindelig funktion til at oprette en vektor eller en liste er funktionen c(…).

  • c(1,10:13) Outputtet for dette ville være en array 1 10 11 12 13. Dette betyder sammensætning af kommaseparerede objekter/variabler.
  • c(1:5, 10.5, "next") Outputtet for dette ville være en array "1" "2" "3" "4" "5" "10.5" "next".
  • y = c(1,2,3) & x = c(y, 1, y) Dette er et eksempel på brug af variabler til at oprette nye variabler. Her ville værdien af y være 1 2 3, mens værdien af x ville være 1 2 3 1 1 2 3.

For yderligere brug af funktionen c(…) se -

c-funktion | R-dokumentation Dette er en generisk funktion, som kombinerer sine argumenter. Standardmetoden kombinerer sine argumenter til at danne en vektor…www.rdocumentation.org

Indbyggede funktioner

  • c(…) Som forklaret ovenfor.
  • ls() eller objects()Giver en liste over eksisterende objekter, der er oprettet.
  • rm("x")Sletter et objekt. Parameteren er navnet på objektet.
  • sum("x")Giver summen af vektoren x. For eksempel, hvis x er 1 2 3 1 1 2 3 så ville sum("x") være13.
  • sqrt("x")Giver kvadratroden af vektoren x. For eksempel hvis x er 1 4 9 så ville sqrt("x") være en anden vektor med værdier 1 2 3.
  • seq(…)Denne funktion bruges til at generere en sekvens af tal. Den tager forskellige parametre som from (Startværdi for sekvensen), to (Slutværdi for sekvensen), by (Antal, hvormed sekvensen skal øges), length.out (Længde af sekvens) og along.with (Dette er en liste over vektor med længden n og bruges kun til at få længden af denne passerede liste. Mærkeligt 😷) Eksempel:- seq(from=1, to=4, by=0.5) — Giver en sekvens fra 1 til 4 med 0.5 increment. Mere om seq(…) her.
  • paste(…) Denne funktion bruges til at lave strenge ved hjælp af en sammenkædning af vektorer ved brug af 2 parametre nemlig sep & collapse. sep giver en separator mellem de sammenkædede vektorer, mens collapse giver en separator, der sammenkæder værdierne i den sammenkædede vektor. (Inception? 🤒) Lad os lære det med nogle eksempler. paste("xyz", 1:3)"xyz 1" "xyz 2" "xyz 3" (Dette er uden sep & collapse) paste("xyz", c(1,2,"variable",3), sep=",") "xyz,1" "xyz,2" "xyz,variable" "xyz,3" (Dette er kun med sep ) paste(c(1:5), c(5:10), sep = ": ", collapse = "; ")"1: 5; 2: 6; 3: 7; 4: 8; 5: 9; 1: 10" (Dette er med sep og collapse; Bemærk her, at dette danner en enkelt streng 😄.) Mere om paste(…) her.
  • rep(x, …) Som navnet antyder, bruges denne funktion til at gentage den eksisterende vektor. De parametre, som denne funktion kan tage, er times (Antal gange vektoren skal gentages), length.out (Ønsket længde på outputvektor) & each (Antal gange hvert element i vektoren skal gentages) rep(c(1,2,3), 3) or 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 Mere om rep(x, …) her.

Brugerdefinerede funktioner

Eksemplet nedenfor viser en simpel måde at skrive en enlinjet funktion, der returnerer kvadratet på en variabel. Funktionsnavnet her er fn.

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

Eksempel på en kodeblok i en funktion.

fn -> function(a, b) {

c = a * b

c = c + b

print(x)

}
fn(10, 20)

Funktioner med loops,if-else.

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

p = c() #Initialiser vektoren, som gemmer primtal
    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("Input større end 2")

}

}

Eksemplet ovenfor returnerer en vektor med alle primtallene op til n sendt til funktionen. Funktionen stop her stopper udførelsen og kaster en fejl.

Det indledende p = c() bruges til at initialisere vektoren, som gemmer primtallet. Og s = seq (2,n) bruges til at initialisere vektoren til, som derefter loopes.

Loopet kontrollerer, om værdien findes i vektoren s, defineret tidligere ved hjælp af funktionen any. Og hvis den matcher, så tilføjer den den værdi til primvektoren og opdaterer vektoren, der skal kontrolleres med, dvs. s med alle tal, der ikke kan deles med det aktuelle i

I slutningen af loopet indeholder p vektoren alle primtallene.


Referencer


Tak for læsningen. I min næste artikel forklarer jeg plotfunktioner. Bortset fra det nogle indsigter om pakker & datasæt.

Hvis du ikke har læst del 1, kan du læse den her.

Stil dine spørgsmål nedenfor. Forslag er velkomne. 🙌