R este un limbaj de programare open source și un mediu software pentru calculul statistic și grafică. Este unul dintre limbile principale utilizate atât de oamenii de știință de date, cât și de statistici. Este susținut de Fundația R pentru Calculul Statistic și de o comunitate mare de dezvoltatori open source. Deoarece R a utilizat o interfață de linie de comandă, poate exista o curbă de învățare abruptă pentru unii indivizi care sunt obișnuiți să utilizeze programe orientate GUI, cum ar fi SPSS și SAS, astfel încât extensiile la R, cum ar fi RStudio, pot fi foarte benefice. Deoarece R este un program open source și disponibil gratuit, poate exista o mare atracție pentru academicieni al căror acces la programe statistice este reglementat prin asocierea lor la diferite colegii sau universități.

Instalare

Primul lucru de care aveți nevoie pentru a începe cu R este să îl descărcați de la site-ul oficial conform sistemului dvs. de operare.

  • RStudio este un mediu de dezvoltare integrat (IDE) pentru R. Include o consolă, un editor de evidențiere a sintaxei care acceptă executarea directă a codului, precum și instrumente pentru graficare, istoric, depanare și gestionarea spațiului de lucru.
  • Rețeaua de arhivă cuprinzătoare R (CRAN) este o sursă de lider pentru instrumentele și resursele R.
  • Tidyverse este o colecție opinionată de pachete R concepute pentru știința datelor precum ggplot2, dplyr, readr, tidyr, purr, tibble.
  • tabel de date este o implementare a bazei data.frame axat pe performanță îmbunătățită și sintaxă flexibilă și concisă.
  • Lucios cadru pentru construirea de aplicații web de tip tablou de bord în R.

Tipuri de date în R

Vector

Este o secvență de elemente de date de același tip de bază. De exemplu:

> o <- c(1,2,5.3,6,-2,4)                             	 # Numeric vector
> p <- c("one","two","three","four","five","six")    	 # Character vector
> q <- c(TRUE,TRUE,FALSE,TRUE,FALSE,TRUE)                # Logical vector
> o;p;q
[1]  1.0  2.0  5.3  6.0 -2.0  4.0
[1] "one"   "two"   "three" "four"  "five"  "six"
[1]  TRUE  TRUE FALSE  TRUE FALSE

Matrice

Este un set de date dreptunghiular bidimensional. Componentele dintr-o matrice trebuie, de asemenea, să fie de același tip de bază ca vectorul. De exemplu:

> m = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)
> m
>[,1] [,2] [,3]
[1,] "a"  "a"  "b" 
[2,] "c"  "b"  "a"

Cadru de date

Este mai general decât o matrice, deoarece coloanele diferite pot avea diferite tipuri de date de bază. De exemplu:

> d <- c(1,2,3,4)
> e <- c("red", "white", "red", NA)
> f <- c(TRUE,TRUE,TRUE,FALSE)
> mydata <- data.frame(d,e,f)
> names(mydata) <- c("ID","Color","Passed")
> mydata

Liste

Este un obiect R care poate conține multe tipuri diferite de elemente în interiorul său, cum ar fi vectori, funcții și chiar o altă listă din interiorul său. De exemplu:

> list1 <- list(c(2,5,3),21.3,sin)
> list1
[[1]]
[1] 2 5 3
[[2]]
[1] 21.3
[[3]]
function (x)  .Primitive("sin")

Funcții în R

O funcție vă permite să definiți un bloc de cod reutilizabil care poate fi executat de multe ori în cadrul programului dvs.

Funcțiile pot fi denumite și apelate în mod repetat sau pot fi rulate anonim în loc (similar cu funcțiile lambda din python).

Dezvoltarea unei înțelegeri complete a funcțiilor R necesită înțelegerea mediilor. Mediile sunt pur și simplu o modalitate de a gestiona obiecte. Un exemplu de medii în acțiune este că puteți utiliza un nume de variabilă redundantă într-o funcție, care nu va fi afectat dacă timpul de rulare mai mare are deja aceeași variabilă. În plus, dacă o funcție apelează o variabilă nedefinită în cadrul funcției, va verifica mediul de nivel superior pentru acea variabilă.

Sintaxă

În R, o definiție a funcției are următoarele caracteristici:

  1. Cuvântul cheie function
  2. un nume de funcție
  3. parametrii de intrare (opțional)
  4. un bloc de cod de executat
  5. o declarație de returnare (opțional)
# a function with no parameters or returned values
sayHello() = function(){
  "Hello!"
}

sayHello()  # calls the function, 'Hello!' is printed to the console

# a function with a parameter
helloWithName = function(name){
  paste0("Hello, ", name, "!")
}

helloWithName("Ada")  # calls the function, 'Hello, Ada!' is printed to the console

# a function with multiple parameters with a return statement
multiply = function(val1, val2){
  val1 * val2
}
  
multiply(3, 5)  # prints 15 to the console

Funcțiile sunt blocuri de cod care pot fi reutilizate pur și simplu apelând funcția. Aceasta permite reutilizarea simplă și elegantă a codului fără a rescrie în mod explicit secțiuni de cod. Acest lucru face codul mai ușor de citit, facilitează depanarea și limitează erorile de tastare.

Funcțiile din R sunt create folosind function cuvânt cheie, împreună cu numele funcției și parametrii funcției din paranteze.

return() funcția poate fi utilizată de funcție pentru a returna o valoare și este de obicei utilizată pentru a forța terminarea timpurie a unei funcții cu o valoare returnată. Alternativ, funcția va returna valoarea finală imprimată.

# return a value explicitly or simply by printing
sum = function(a, b){
  c = a + b
  return(c)
}

sum = function(a, b){
  a + b
}


result = sum(1, 2)
# result = 3

De asemenea, puteți defini valorile implicite pentru parametri, pe care R le va utiliza atunci când o variabilă nu este specificată în timpul apelului funcțional.

sum = function(a, b = 3){
  a + b
}

result = sum(a = 1)
# result = 4

De asemenea, puteți trece parametrii în ordinea dorită, folosind numele parametrului.

result = sum(b=2, a=2)
# result = 4

R poate accepta și parametri opționali suplimentari cu „…”

sum = function(a, b, ...){
  a + b + ...
}

sum(1, 2, 3) #returns 6

Funcțiile pot fi, de asemenea, executate anonim. Acestea sunt foarte utile în combinație cu familia de funcții „aplicați”.

# loop through 1, 2, 3 - add 1 to each
sapply(1:3,
       function(i){
         i + 1
         })

Note

Dacă o definiție a funcției include argumente fără valori implicite specificate, trebuie incluse valorile pentru acele valori.

sum = function(a, b = 3){
a + b
}

sum(b = 2) # Error in sum(b = 2) : argument "a" is missing, with no default

Variabilele definite într-o funcție există numai în sfera acelei funcții, dar vor verifica mediul mai mare dacă variabila nu este specificată

double = function(a){
a * 2
}

double(x)  # Error in double(x) : object 'x' not found


double = function(){
a * 2
}

a = 3
double() # 6

Funcții încorporate în R

  • R vine cu multe funcții pe care le puteți utiliza pentru a efectua sarcini sofisticate, cum ar fi eșantionarea aleatorie.
  • De exemplu, puteți rotunji un număr cu round()sau calculați factorialul său cu factorial().
> round(4.147)
[1] 4
> factorial(3)
[1] 6
> round(mean(1:6))
[1] 4
  • Datele pe care le transmiteți în funcție se numesc argumentul funcției.
  • Puteți simula o aruncare a matriței cu R sample()funcţie. sample() funcția ia două argumente: un vector numit x și un număr numit mărime. De exemplu:
> sample(x = 1:4, size = 2)
[] 4 2
> sample(x = die, size = 1)
[] 3
>dice <- sample(die, size = 2, replace = TRUE)
>dice
[1] 2 4
>sum(dice)
[1] 6
  • Dacă nu sunteți sigur ce nume să utilizați cu o funcție, puteți căuta argumentele funcției cu args.
> args(round)
[1] function(x, digits=0)

Obiecte în R

R permite salvarea datelor stocându-le într-un obiect R.

Ce este un obiect?

Este doar un nume pe care îl puteți utiliza pentru a apela datele stocate. De exemplu, puteți salva date într-un obiect precum a sau b.

> a <- 5
> a
[1] 5

Cum se creează un obiect în R?

  1. Pentru a crea un obiect R, alegeți un nume și apoi utilizați simbolul mai mic decât, <, urmat de un semn minus, -, pentru a salva date în ea. Această combinație arată ca o săgeată, <-. R va crea un obiect, îi va da numele și va stoca în el tot ce urmează săgeata.
  2. Când îl întrebați pe R ce este într-un, acesta vă spune pe rândul următor. De exemplu:
> die <- 1:6
> die
[1] 1 2 3 4 5 6
  1. Puteți denumi un obiect în R aproape orice doriți, dar există câteva reguli. În primul rând, un nume nu poate începe cu un număr. În al doilea rând, un nume nu poate folosi unele simboluri speciale, cum ar fi ^, !, $, @, +, -, /, or *:
  2. R înțelege, de asemenea, scrierea cu majuscule (sau este sensibil la majuscule și minuscule), astfel încât numele și numele se vor referi la diferite obiecte.
  3. Puteți vedea ce nume de obiecte ați folosit deja cu funcția ls().

Mai multe informatii:

  • Aflați elementele de bază ale limbajului de programare R în doar 2 ore cu acest curs gratuit de programare statistică
  • O introducere în web scraping folosind R.
  • O introducere la agregate în R: un instrument puternic pentru a juca cu date