Variables

Variabler
Author

Søren O’Neill & Steen Harsted

Published

February 8, 2024


1 Variables

The concept of variables is simple enough: If you want R to store any data in memory, you have to give R a variable name with which you can refer to the data.

This is a simple example in which the data 14 is stored somewhere in memory which can be referred to by the name my_new_variable:

my_new_variable <- 2+3*4

..the assignment operator <- is discussed later. For now, when you read <- just say: “..becomes the result of..”.

In the above, read it out aloud as “my new variable becomes the result of 2+3*4”

1.1 Variable names

R is very flexible with variable names, but there are a few rules to observe:

  • Do not start variable names with a number
  • Do not include spaces or special characters such as hyphens - or @ in the name. Underscores _ and points . er okay, though.
  • Do not start variable names with an underscore _
  • Do not use names which have special meaning in R, such as .e.g TRUE or NULL
# Illegal variable names:
a-variable-name <- 4
_a_variable_name <- 5
NULL <- 6
a variable name <- 7
4_variable_name <- 8

# Legal variable names:
avariablename <- 4
a_variable_name <- 5
aVariableName <- 6
AVARIABLENAME <- 7
a_variable_name_2 <- 8
.a_variable_name <- 9
  • Use underscores to_seperate_words
  • Do not use CamelCaseToSeperateWords

  • Make variable names meaningful
    • x is not exactly very helpful
    • df_odi for a data frame of Oswestry Disability Inventory data is much better

1.2 Variable declaration

By creating a variable, the name is listed in R environment and a chunk of computer memory is set aside to store data for the variable.

In R, you do not need to explicitly declare a new variable. It will be created by R the fist time it is encountered. However, it should be assigned a value when it is created – NA if nothing else.

Look at this simple example and contemplate what happens:

var_1 <- 2+3*4
var_3 <- var_1 + var_2

In the first line, the R interpreter encounters a new variable var_1 and assigns that variable to the value 14 which is stored as a numeric value in memory.

In the second line, the R interpreter encounters a new variable var_3 and fails to assign a value to it, because the variable var_2 is unknown and has no value assigned. Code execution will stop (crash) with an error message…

In the example above, the variable var_1 is stored as a numeric data type – not as an integer.

Because the code does not explicitly say whether var_1 should be an integer or a numeric, R will make a decision for you – and it chooses numeric.

If you specifically wanted var_1 to be an integer, the following code would do the trick:

var_1 <- as.integer(2+3*4)

2 Variabler

Konceptet med variabler er simpelt nok: Hvis du vil have R til at gemme data i hukommelsen, skal du give R et variabelnavn, som du kan referere til dataene med.

Dette er et simpelt eksempel, hvor data ‘14’ er gemt et sted i hukommelsen, som kan henvises til med navnet ‘min_nye_variabel’:

min_nye_variabel <- 2+3*4

.._tildelings-operatøren_ <- diskuteres senere, men indtil videre: Når du læser <-, skal du bare sige: “..bliver resultatet af…”.

Ovenstående kan læses højt som “min nye variabel bliver resultatet af 2+3*4”

2.1 Variablenavne

R er meget fleksibel med variabelnavne, men der er et par regler at overholde:

  • Start ikke variabelnavne med et tal
  • Medtag ikke mellemrum eller specialtegn såsom bindestreger “-” eller “@” i navnet. Understregning _ og punktum . er okay, dog.
  • Lad være med at starte variabelnavne med en understregning “_“.
  • Brug ikke navne, der har en speciel betydning i R, som f.eks. “TRUE” eller “NULL”
# Ugyldige variabelnavne:
a-variabel-navn <- 4
_et_variabelnavn <- 5
NULL <- 6
et variabelnavn <- 7
4_variabelnavn <- 8

# Gyldige variabelnavne:
etvariabelnavn <- 4
et_variabelnavn <- 5
etVariabelNavn <- 6
VARIABELNAME <- 7
et_variabelnavn_2 <- 8
.a_variabel_navn <- 9
  • Brug understregninger for at_adskille_ord
  • Brug ikke CamelCaseToSeperateWords

  • Gør variabelnavne meningsfulde
  • x er ikke just specielt meningsfyldt
  • df_odi for en dataramme af Oswestry Disability Inventory-data er meget bedre

2.2 Variabel erklæring

Når R møder en ny variabel, registreres navnet i R-miljøet, og en del af computerhukommelsen er afsat til at gemme data for variablen.

I R behøver du ikke eksplicit at deklarere en ny variabel. Den bliver oprettet af R første gang den stødes på. Den bør dog tildeles en værdi, når den oprettes – NA om ikke andet.

Se på dette enkle eksempel og overvej, hvad der sker:

var_1 <- 2+3*4
var_3 <- var_1 + var_2

I den første linje støder R-fortolkeren på en ny variabel var_1 og tildeler denne variabel til værdien 14, som er gemt som en numerisk værdi i hukommelsen.

I den anden linje støder R-fortolkeren på en ny variabel var_3 og fejler når den forsøger at tildele en værdi til den, fordi variablen var_2 er ukendt og ikke har nogen værdi. Kodekørslen stopper (crash’er) med en fejlmeddelelse…

I eksemplet ovenfor er variablen var_1 gemt som en numerisk datatype – ikke som et heltal.

Fordi koden ikke eksplicit definerer, om var_1 skal være et heltal eller et numerisk, vil R træffe en beslutning for dig – og den vælger numeric.

Hvis du specifikt ønskede, at ‘var_1’ skulle være et heltal, ville følgende kode gøre tricket:

var_1 <- as.integer(2+3*4)