R Forklaret programmeringssprog

R er et open source programmeringssprog og softwaremiljø til statistisk computing og grafik. Det er et af de primære sprog, der bruges af både dataforskere og statistikere. Det understøttes af R Foundation for Statistical Computing og et stort samfund af open source-udviklere. Da R anvendte en kommandolinjegrænseflade, kan der være en stejl indlæringskurve for nogle individer, der er vant til at bruge GUI-fokuserede programmer som SPSS og SAS, så udvidelser til R som RStudio kan være meget gavnlige. Da R er et open source-program og frit tilgængeligt, kan der være en stor attraktion for akademikere, hvis adgang til statistiske programmer reguleres gennem deres tilknytning til forskellige colleges eller universiteter.

Installation

Den første ting, du har brug for for at komme i gang med R, er at downloade det fra dets officielle side i henhold til dit operativsystem.

Populære R-værktøjer og pakker

  • RStudio er et integreret udviklingsmiljø (IDE) til R. Det inkluderer en konsol, syntaks-fremhævende editor, der understøtter direkte kodeudførelse samt værktøjer til plotting, historie, fejlretning og arbejdsområdestyring.
  • Comprehensive R Archive Network (CRAN) er en førende kilde til R-værktøjer og ressourcer.
  • Tidyverse er en meningsfuld samling af R-pakker designet til datavidenskab som ggplot2, dplyr, readr, tidyr, purr, tibble.
  • data.table er en implementering af base med data.framefokus på forbedret ydeevne og kortfattet, fleksibel syntaks.
  • Skinnende rammer til opbygning af dashboards som webapps i R.

Datatyper i R

Vektor

Det er en sekvens af dataelementer af samme grundlæggende type. For eksempel:

> o  p  q  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

Matrix

Det er et todimensionalt rektangulært datasæt. Komponenterne i en matrix skal også være af samme grundlæggende type som vektor. For eksempel:

> 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"

Dataramme

Det er mere generelt end en matrix, idet forskellige kolonner kan have forskellige grundlæggende datatyper. For eksempel:

> d  e  f  mydata  names(mydata)  mydata

Lister

Det er et R-objekt, der kan indeholde mange forskellige typer elementer inde i det som vektorer, funktioner og endda en anden liste inde i det. For eksempel:

> list1  list1 [[1]] [1] 2 5 3 [[2]] [1] 21.3 [[3]] function (x) .Primitive("sin")

Funktioner i R

En funktion giver dig mulighed for at definere en genanvendelig blok kode, der kan udføres mange gange i dit program.

Funktioner kan navngives og kaldes gentagne gange eller kan køres anonymt på plads (svarende til lambda-funktioner i python).

Udvikling af fuld forståelse af R-funktioner kræver forståelse af miljøer. Miljøer er simpelthen en måde at administrere objekter på. Et eksempel på miljøer i aktion er, at du kan bruge et redundant variabelnavn inden for en funktion, der ikke påvirkes, hvis den større runtime allerede har den samme variabel. Derudover, hvis en funktion kalder en variabel, der ikke er defineret inden for funktionen, vil den kontrollere miljøet på højere niveau for den variabel.

Syntaks

I R har en funktionsdefinition følgende funktioner:

  1. Nøgleordet function
  2. et funktionsnavn
  3. inputparametre (valgfrit)
  4. en eller anden blok kode, der skal udføres
  5. en returerklæring (valgfri)
# 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

Funktioner er kodeblokke, der kan genbruges ved blot at ringe til funktionen. Dette muliggør enkel, elegant genbrug af kode uden eksplicit at skrive sektioner af kode igen. Dette gør kode både mere læselig, gør det nemmere at debugge og begrænser skrivefejl.

Funktioner i R oprettes ved hjælp af functionnøgleordet sammen med et funktionsnavn og funktionsparametre inden for parentes.

Den return()funktion kan bruges af funktionen til at returnere en værdi, og anvendes typisk til at tvinge tidlig afslutning af en funktion med en returnerede værdi. Alternativt returnerer funktionen den endelige udskrevne værdi.

# 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

Du kan også definere standardværdier for parametrene, som R bruger, når en variabel ikke er specificeret under funktionsopkald.

sum = function(a, b = 3){ a + b } result = sum(a = 1) # result = 4

Du kan også videregive parametrene i den ønskede rækkefølge ved hjælp af navnet på parameteren.

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

R kan også acceptere yderligere, valgfri parametre med '...'

sum = function(a, b, ...){ a + b + ... } sum(1, 2, 3) #returns 6

Funktioner kan også køres anonymt. Disse er meget nyttige i kombination med 'anvend' familie af funktioner.

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

Bemærkninger

Hvis en funktionsdefinition indeholder argumenter uden standardværdier specificeret, skal værdier for disse værdier medtages.

sum = function(a, b = 3){ a + b } sum(b = 2) # Error in sum(b = 2) : argument "a" is missing, with no default

Variabler, der er defineret inden for en funktion, findes kun inden for denne funktion, men kontrollerer større miljø, hvis variablen ikke er specificeret

double = function(a){ a * 2 } double(x) # Error in double(x) : object 'x' not found double = function(){ a * 2 } a = 3 double() # 6

Indbyggede funktioner i R

  • R kommer med mange funktioner, som du kan bruge til at udføre sofistikerede opgaver som tilfældig prøveudtagning.
  • For eksempel kan du afrunde et tal med round()eller beregne dets faktura med factorial().
> round(4.147) [1] 4 > factorial(3) [1] 6 > round(mean(1:6)) [1] 4
  • De data, du sender til funktionen kaldes funktionens argument.
  • You can simulate a roll of the die with R’s sample()function. The sample() function takes two arguments:a vector named x and a number named size. For example:
> sample(x = 1:4, size = 2) [] 4 2 > sample(x = die, size = 1) [] 3 >dice dice [1] 2 4 >sum(dice) [1] 6
  • If you’re not sure which names to use with a function, you can look up the function’s arguments with args.
> args(round) [1] function(x, digits=0)

Objects in R

R allows to save the data by storing it inside an R object.

What’s an object?

It is just a name that you can use to call up stored data. For example, you can save data into an object like a or b.

> a  a [1] 5

How to create an Object in R?

  1. To create an R object, choose a name and then use the less-than symbol, <, followed by a minus sign, -, to save data into it. This combination looks like an arrow, <-. R will make an object, give it your name, and store in it whatever follows the arrow.
  2. Når du spørger R, hvad der er i a, fortæller det dig på næste linje. For eksempel:
> die  die [1] 1 2 3 4 5 6
  1. Du kan navngive et objekt i R næsten hvad du vil, men der er et par regler. For det første kan et navn ikke starte med et tal. For det andet kan et navn ikke bruge nogle specielle symboler som ^, !, $, @, +, -, /, or *:
  2. R forstår også store bogstaver (eller er store og små bogstaver), så navn og navn henviser til forskellige objekter.
  3. Du kan se, hvilke objektnavne du allerede har brugt med funktionen ls().

Mere information:

  • Lær R grundlæggende programmeringssprog på kun 2 timer med dette gratis kursus i statistisk programmering
  • En introduktion til webskrabning ved hjælp af R
  • En introduktion til aggregater i R: et kraftfuldt værktøj til at lege med data