my_new_variable <- 2+3*4Assigning value to a variable
1 The assignment operator <-
Recall the previous simple example in which the data 14 is stored in memory under the name my_new_variable:
Notice how the value 14 (the result of 2+3*4) is assigned to the variable my_new_variable using the assignment operator <-.
This is a particular to R.
In other programming languages, it is common to use = as the assignment operator (… being very flexible, R will actually also accept that.)
However, the = can be somewhat ambiguous:
For instance,
y = 2x + 4could be read as a declaration of a functional relationship between variablesxandy- in this case a linear relationship: for every value of x, y equals 2x+4.
Alternatively, it could be read as a test of equality: is y equal to 2x+4 ? … the result of which could only be
TRUEorFALSE.
Or, indeed it could be read as an assignment: reassign the value of y to be equal to 2x+4 … or even reassign the value of x, so that 2x+4 is equal to y … reading left-to-right is not a universal, you see!
In short: The preferred notation for assigning new values to a variable in R is to use the assignment operator <-
Note also:
- to actually define a functional relation, use
function()e.g.:y <- function(x) { 2x+4 }… more about that later - to test for equality use
==e.g.:y == 2x+4… which will return eitherTRUEorFALSE - it is permissible but not good practice to assign the other way using
->e.g.:2x + 4 -> y
2 Tildelingsoperatoren <-
Husk det simple eksempel fra tidligere, hvor 14 blev gemt i hukommelsen under navnet min_nye_variabel:
min_nye_variabel <- 2+3*4Bemærk, hvordan værdien 14 (resultatet af 2+3*4) blev tildelt til variablen min_nye_variabel ved hjælp af tildelingsoperatoren <-.
Dette er noget særligt for R.
I andre programmeringssprog er det almindeligt at bruge = som tildelignsoperatør (… da R er meget fleksibelt, vil R faktisk også acceptere et =.)
Dog kan = være noget tvetydigt:
For eksempel kunne
y = 2x + 4læses som en erklæring om en funktionel sammenhæng mellem variablenexogy- i dette tilfælde en lineær sammenhæng: for hver værdi af x er y lig med 2x+4.
Alternativt kan det læses som en test af lighed: er y lig med 2x+4 ? … resultat af sådan en test kan kun være ‘SAND’ eller ‘FALSK’.
Eller det kunne faktisk læses som en tildeling: tildel variablen y værdien af 2x+4 … eller endda tildel variablen x en værdi så 2x+4 er lig med y … det at læse venstre- til højre er nemlig ikke en universelt.
Kort sagt: Den foretrukne notation for at tildele nye værdier til en variabel i R er at bruge tildelingsoperatoren <-
Bemærk også:
- for at definere en funktionel relation, brug
function()f.eks.:y <- function(x) { 2x+4 }… mere om det senere - for at teste for lighed, brug
==f.eks.:y == 2x+4… hvilket vil returnere enten “TRUE” eller “FALSE” - det er tilladt, men ikke god praksis at tildele den anden vej ved hjælp af
->, f.eks.:2x + 4 -> y