Assigning value to a variable

Tildel en værdi til en variable
Author

Søren O’Neill & Steen Harsted

Published

February 8, 2024


1 The assignment operator <-

Recall the previous simple example in which the data 14 is stored in memory under the name my_new_variable:

my_new_variable <- 2+3*4

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 + 4 could be read as a declaration of a functional relationship between variables x and y - 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 TRUE or FALSE.

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 either TRUE or FALSE
  • 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*4

Bemæ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 + 4 læses som en erklæring om en funktionel sammenhæng mellem variablene x og y - 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