Si les composants d'une liste ont des étiquettes, comme c'est le cas avec le nom, le salaire et l'union pour j à la section 1, vous pouvez les obtenir via les names():
  1. > names(j)
  2. [1] "name" "salary" "union"
Source code
Pour obtenir les valeurs, utilisez unlist ():
  1. > ulj <- unlist(j)
  2. > ulj
  3. name salary union
  4. "Joe" "55000" "TRUE"
  5. > class(ulj)
  6. [1] "character"
Source code
La valeur de retour de unlist () est un vecteur, dans ce cas, un vecteur de chaînes de caractères. Notez que les noms d'élément dans ce vecteur proviennent des composants dans la liste d'origine.
D'autre part, si nous devions commencer par des chiffres, on obtiendrait des nombres.
  1. > z <- list(a=5,b=12,c=13)
  2. > y <- unlist(z)
  3. > class(y)
  4. [1] "numeric"
  5. > y
  6. a b c
  7. 5 12 13
Source code
Donc, la sortie de un1ist () dans ce cas était un vecteur numérique. Qu'en est-il d'un cas mixte?
  1. > w <- list(a=5,b="xyz")
  2. > wu <- unlist(w)
  3. > class(wu)
  4. [1] "character"
  5. > wu
  6. a b
  7. "5" "xyz"
Source code
Ici, R a choisi le dénominateur le moins commun: les chaînes de caractères. Cela ressemble à une sorte de structure de priorité, et c'est. Comme l'aide de R pour unlist () déclare:
Dans la mesure du possible, les composants de la liste sont forcés à un mode commun lors de l'élimination, de sorte que le résultat finit souvent par être un vecteur de caractères. Les vecteurs seront forcés au type le plus élevé des composants dans la hiérarchie NULL < raw < logical < integer < real < complex < character < list < expression:: les pairlists sont traités comme des listes.
Mais il y a autre chose à régler ici. Bien que wu soit un vecteur et non une liste, R a donné à chacun des éléments un nom. Nous pouvons les supprimer en indiquant NULL, comme vous l'avez vu à la Section 2.11.
  1. > names(wu) <- NULL
  2. > wu
  3. [1] "5" "xyz"
Source code
Nous pouvons également supprimer les noms des éléments directement avec unname (), comme suit:
  1. > wun <- unname (wu)
  2. > wun
  3. [1] "5" "xyz"
Source code
Cela a également l'avantage de ne pas détruire les noms dans wu, au cas où ils seraient nécessaires plus tard. Si elles ne seront pas nécessaires plus tard, nous pourrions tout simplement attribuer de nouveau à wu au lieu d'être mentionné dans la déclaration précédente.