Tillbaka till blogg
Blogg

Lär dig R | Del 2 | Variabler & Funktioner

Dec 10, 2020·5 min read·Palomi Jain
#Data Analytics#Data Science#R#Rstudio
Lär dig R | Del 2 | Variabler & Funktioner

Lär dig R | Del 2 | Variabler & Funktioner


Variabler

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

Alla ovanstående sätt tilldelar en matris från 1 till 10 till variabeln x.

Dessa är tilldelningsoperatörerna =, ->, <- .

En annan vanlig funktion för att skapa en vektor eller en lista är funktionen c(…).

  • c(1,10:13) Resultatet för detta skulle vara en matris 1 10 11 12 13. Detta betyder sammanslagning av kommaseparerade objekt/variabler.
  • c(1:5, 10.5, "next") Resultatet för detta skulle vara en matris "1" "2" "3" "4" "5" "10.5" "next".
  • y = c(1,2,3) & x = c(y, 1, y) Detta är ett exempel på användning av variabler för att skapa nya variabler. Här skulle värdet för y vara 1 2 3 medan värdet för x skulle vara 1 2 3 1 1 2 3.

För ytterligare användning av funktionen c(…) se-

c-funktion | R-dokumentation Detta är en generisk funktion som kombinerar sina argument. Standardmetoden kombinerar sina argument för att bilda en vektor…www.rdocumentation.org

Inbyggda Funktioner

  • c(…) Som förklarat ovan.
  • ls() eller objects()Ger en lista över befintliga objekt som har skapats.
  • rm("x")Tar bort ett objekt. Parametern är namnet på objektet.
  • sum("x")Ger summan av vektorn x. Till exempel, om x är 1 2 3 1 1 2 3 skulle sum("x") vara13.
  • sqrt("x")Ger kvadratroten av vektorn x. Till exempel om x är 1 4 9 skulle sqrt("x") vara en annan vektor med värdena 1 2 3.
  • seq(…)Denna funktion används för att generera en sekvens av tal. Den tar olika parametrar som from (Startvärde för sekvensen), to (Slutvärde för sekvensen), by (Tal som sekvensen ska ökas med), length.out (Längd på sekvensen) och along.with (Detta är en lista med vektor med längd n och används endast för att få längden på denna godkända lista. Konstigt 😷) Exempel:- seq(from=1, to=4, by=0.5) — Ger en sekvens från 1 till 4 med 0.5 ökning. Mer om seq(…) här.
  • paste(…) Denna funktion används för att skapa strängar med sammanslagning av vektorer med 2 parametrar nämligen sep & collapse. sep ger en separator mellan de sammanslagna vektorerna medan collapse ger en separator som sammanslår värdena i den sammanslagna vektorn. (Inception? 🤒) Låt oss lära oss det med några exempel. paste("xyz", 1:3)"xyz 1" "xyz 2" "xyz 3" (Detta är utan sep & collapse) paste("xyz", c(1,2,"variable",3), sep=",") "xyz,1" "xyz,2" "xyz,variable" "xyz,3" (Detta är endast med sep ) paste(c(1:5), c(5:10), sep = ": ", collapse = "; ")"1: 5; 2: 6; 3: 7; 4: 8; 5: 9; 1: 10" (Detta är med sep och collapse; Lägg märke till att detta bildar en enda sträng 😄.) Mer om paste(…) här.
  • rep(x, …) Som namnet antyder används denna funktion för att upprepa den befintliga vektorn. Parametrarna denna funktion kan ta är times (Antal gånger vektorn ska upprepas), length.out (Önskad längd på utdatavektorn) & each (Antal gånger varje element i vektorn ska upprepas) 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 Mer om rep(x, …) här.

Användardefinierade funktioner

Exemplet nedan visar ett enkelt sätt att skriva en enradsfunktion som returnerar kvadraten på en variabel. Funktionsnamnet här är fn.

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

Exempel på ett kodblock 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() #Initialising the vector which stores prime numbers
    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 greater than 2")

}

}

Exemplet ovan returnerar en vektor med alla primtal upp till n som skickas till funktionen. Funktionen stop här stoppar körningen och kastar ett fel.

Den initiala p = c() används för att initiera vektorn som lagrar primtalet. Och s = seq (2,n) används för att initiera vektorn fram till, som sedan loopar genom.

Loopen kontrollerar om värdet är närvarande i vektorn s definierad tidigare med hjälp av funktionen any. Och om det matchar lägger den till det värdet till primtalsvektorn och uppdaterar vektorn som ska kontrolleras med d.v.s s med alla tal som inte är delbara med den aktuella i

I slutet av loopen innehåller p vektorn alla primtal.


Referenser


Tack för att du läste. I min nästa artikel kommer jag att förklara ritfunktioner. Förutom det, några insikter om paket & datamängder.

Dessutom, om du inte har läst del 1. Du kan läsa den här.

Ställ dina frågor nedan. Förslag är välkomna. 🙌