2010-11-23 21 views
12

J'utilise actuellement R et je veux savoir comment je peux étiqueter les objets de la liste lorsque Je déclare une liste. Par exemple: return(list(xhat,alpha,beta)), et xhat, alpha et beta sont eux-mêmes des tableaux. Je veux donner à chacun une étiquette appropriée.Comment mettre des étiquettes dans la liste pour R?

Merci.

Répondre

7

Tout ce que vous avez besoin est list(x=xhat, a=alpha, b=beta)

+0

Oui, mais je veux étiqueter la sortie. –

+1

Lorsque vous sélectionnez chaque élément de la liste en utilisant par exemple 'list.name [" x "]' le nom (ici 'x') est imprimé avec la sortie. Lorsque vous utilisez deux crochets, le nom est omis 'list.name [[" x "]]'. Est-ce ce que vous cherchez? – mropa

+0

Tous les moyens suggérés par VitoshKa et moi font une liste avec des éléments étiquetés. La façon dont j'ai suggéré fonctionne si vous connaissez les étiquettes à l'avance. Les solutions de VitoshKa sont plus générales, donc fonctionneront quand vous voudrez déterminer les étiquettes dans votre script. Qu'est-ce que vous faites avec ces étiquettes est une autre question ... –

21

Pour les cas simples de réponse de Michael va travailler. Parfois, vous avez un vecteur de noms my_names que vous souhaitez utiliser pour nommer/renommer la sortie. Il y a au moins trois façons:

  • utilisation names<-:

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

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

    structure(out, names=my_names) 
    
+0

Aucun de ceux qui ont besoin de 'return()', et causera une erreur si elle est émise au plus haut niveau (i..e pas dans une fonction) –

+0

@Gavin, évidemment, mais sa question est sur l'étiquetage de la valeur retournée, donc le retour est là pour correspondre à la question. – VitoshKa

+0

Le retour est facultatif dans r et il est bon de l'omettre, sauf lorsqu'il est utilisé pour une sortie anticipée – hadley