Anwendungsfall:
Es soll eine Liste erstellt werden, die Namen und Werte miteinander verbindet, ähnlich wie ein dictionary, hash oder lookup table in einer anderen Programmiersprache
Die list()
Funktion ermöglicht es, Elementen Namen zu geben:
lst <- list (mid = 0.5 , right = 0.841 , far.right = 0.977 )
lst
$mid
[1] 0.5
$right
[1] 0.841
$far.right
[1] 0.977
Lösung:
Zwei Vektoren für Namen und Werte kann man zusammenführen, indem man zunächst eine leere Liste erstellt und diese dann mit den Vektoren füllt:
values <- c (1 , 2 , 3 )
names <- c ("a" , "b" , "c" )
lst <- list ()
lst[names] <- values
lst
$a
[1] 1
$b
[1] 2
$c
[1] 3
Oder direkt
Man kann die Werte auch direkt den Namen hinzufügen, wenn man die Liste erstellt:
lst <- list (
far.left = - 2 ,
left = - 1 ,
mid = 0 ,
right = 1 ,
far.right = 2
)
lst
$far.left
[1] -2
$left
[1] -1
$mid
[1] 0
$right
[1] 1
$far.right
[1] 2
Oder so:
values <- - 2 : 2
names <- c ("far.left" , "left" , "mid" , "right" , "far.right" )
lst <- list ()
lst[names] <- values
lst
$far.left
[1] -2
$left
[1] -1
$mid
[1] 0
$right
[1] 1
$far.right
[1] 2
Nutzung:
Wenn die Assoziation erstellt ist, kann die Liste ganz einfach Namen in Werte übersetzen:
cat ("Die linke Grenze ist" , lst[["far.left" ]], " \n " )