2010-11-23 10 views
12

Estoy usando R actualmente y quiero saber cómo puedo etiquetar los objetos de la lista cuando declaro una lista. Por ejemplo: return(list(xhat,alpha,beta)) y xhat, alpha y beta son en sí mismos matrices. Quiero darle a cada uno una etiqueta apropiada.¿Cómo colocar las etiquetas en la lista para R?

Gracias.

Respuesta

7

Todo lo que necesita es list(x=xhat, a=alpha, b=beta)

+0

Sí, pero quiero etiquetar la salida. –

+1

Cuando selecciona cada elemento de la lista usando, por ejemplo, 'list.name [" x "]' el nombre (aquí 'x') se imprime con la salida. Cuando utiliza dos corchetes, el nombre se omite 'list.name [[" x "]]'. ¿Es esto lo que estás buscando? – mropa

+0

Todas las formas sugeridas por VitoshKa y yo hacemos una lista con elementos etiquetados. La forma en que sugerí funciona si conoce las etiquetas con anticipación. Las soluciones de VitoshKa son más generales, por lo que funcionarán cuando desee determinar las etiquetas dentro de su secuencia de comandos. Lo que haces con estas etiquetas es otra pregunta ... –

21

Para los casos simples respuesta de Michael va a funcionar. A veces, aunque tiene un vector de nombres my_names que le gustaría usar para nombrar/cambiar el nombre del resultado. Existen al menos tres maneras:

  • uso names<-:

    out <- list(xhat,alpha,beta) 
    names(out) <- my_names 
    out 
    
  • uso setNames():

    setNames(out, my_names) 
    
  • uso structure():

    structure(out, names=my_names) 
    
+0

Ninguno de ellos necesita 'return()', y causará un error si se emite en el nivel superior (es decir, no dentro de una función) –

+0

@Gavin, obviamente así, pero su pregunta es sobre etiquetar el valor devuelto, por lo el retorno está ahí para hacer coincidir la pregunta. – VitoshKa

+0

El retorno es opcional en ry es un buen estilo para omitirlo, excepto cuando se usa para la salida temprana – hadley

Cuestiones relacionadas