R Language Creazione di vettori denominati


Esempio

Il vettore con nome può essere creato in diversi modi. Con c :

xc <- c('a' = 5, 'b' = 6, 'c' = 7, 'd' = 8)

che risulta in:

> xc
a b c d 
5 6 7 8

con list :

xl <- list('a' = 5, 'b' = 6, 'c' = 7, 'd' = 8)

che risulta in:

> xl
$a
[1] 5

$b
[1] 6

$c
[1] 7

$d
[1] 8

Con la funzione setNames , è possibile utilizzare due vettori della stessa lunghezza per creare un vettore con nome:

x <- 5:8
y <- letters[1:4]

xy <- setNames(x, y)

che risulta in un vettore intero con nome:

> xy
a b c d 
5 6 7 8

Come si può vedere, questo dà lo stesso risultato del metodo c .

Puoi anche utilizzare la funzione dei names per ottenere lo stesso risultato:

xy <- 5:8
names(xy) <- letters[1:4]

Con un tale vettore è anche possibile selezionare elementi per nome:

> xy["c"]
c 
7 

Questa caratteristica rende possibile usare un tale vettore con nome come vettore / tabella di ricerca per abbinare i valori ai valori di un altro vettore o colonna in un dataframe. Considerando il seguente dataframe:

mydf <- data.frame(let = c('c','a','b','d'))

> mydf
  let
1   c
2   a
3   b
4   d

Supponiamo di voler creare una nuova variabile nel mydf mydf denominata num con i valori corretti di xy nelle righe. Uso della match funzione i valori appropriati xy possibile selezionare:

mydf$num <- xy[match(mydf$let, names(xy))]

che risulta in:

> mydf
  let num
1   c   7
2   a   5
3   b   6
4   d   8