[R] unlist

Rozložení seznamu (list)

unlist {base} Dokumentace R v češtině

Popis

Funkce unlist zjednoduší strukturu seznamu x do vektoru, který obsahuje všechny atomické komponenty původně obsažené v x.

Použití

unlist(x, recursive = TRUE, use.names = TRUE)

Argumenty

x R objekt, typicky seznam (list) nebo vektor.
recursive logická hodnota. Má být rozložení aplikováno i na podseznamy seznamu x?
use.names logická hodnota. Mají být zachovány názvy?

Podrobnosti

Funkce unlist je generická: lze vytvářet metody pro manipulaci se specifickými třídami objektů, viz InternalMethods. Např. funkce relist s metodou unlist pro objekty třídy relistable.

V případě, že recursive = FALSE, funkce nerozkládá vnořené seznamy nižších úrovní a zpracuje pouze nejvyšší úroveň seznamu.

Faktory jsou zpracovány speciálním způsobem. Pokud jsou všechny prvky x faktory (příp. seřazené faktory), je výsledkem faktor s úrovněmi danými sjednocením množin faktorových úrovní původních prvků v takovém pořadí, v jakém se vyskytují v původních množinách faktorových úrovní původních prvků (což znamená, že pokud mají všechny původní prvky stejnou množinu faktorovýh úrovní, je tato množina současně výslednou množinou úrovní faktorů).

x může být atomický vektor, ovšem v takovém případě funkce unlist neprovádí nic kromě odstranění názvů.

V základním nastavení se funkce unlist pokouší zachovat informaci o názvech v x. Pokud use.names = FALSE, jsou odstraněny veškeré informace o názvech.

Poku je to možné, jsou všechny prvky budoucího vektoru převedeny na stejný datový typ, což často vede k tomu, že rozklad seznamu končí textovým vektorem. Podle možností jsou totiž vektory změněny na nejnižší nutný typ pro zachování obsahu v hierarchii NULL < raw < logical < integer < double < complex < character < list < expression. Párové seznamy jsou zpracovávány jako seznamy.

Seznam je (generický) vektor a zjednodušený vektor může být stále seznamem (a může být dokonce po průchodu funkcí nezměněn). Nevektorové komponenty seznamu (například prvky jazyka jako jsou názvy, vzorce a volání) nejsou změněny a tedy seznam, který obsahuje jeden nebo více takových komponent, zůstane seznamem. (Efektem rozkladu seznamu lm prokladu je vytvoření seznamu obsahujcího jednotlivá rezidua modelu jako prvky.) Povšimněte si, že unlist(x) v případě nevektorového x vrací nezměněné x namísto chybové hlášky.

Hodnota

NULL nebo výraz nebo vektor příslušného typu pro zachování komponent seznamu.

Datový typ je určen podle nejvyššího z typů jednotlivých komponent v hierarchii NULL < raw < logical < integer < double < complex < character < list < expression při změně párových seznamů na seznamy.

Reference

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Viz také

c, as.list, relist.

Příklady

unlist(options())
unlist(options(), use.names = FALSE)

l.ex <- list(a = list(1:5, LETTERS[1:5]), b = "Z", c = NA)
unlist(l.ex, recursive = FALSE)
unlist(l.ex, recursive = TRUE)

l1 <- list(a = "a", b = 2, c = pi+2i)
unlist(l1) # textovy vektor
l2 <- list(a = "a", b = as.name("b"), c = pi+2i)
unlist(l2) # zustava seznamem

ll <- list(as.name("sinc"), quote( a + b ), 1:10, letters, expression(1+x))
utils::str(ll)
for(x in ll)
stopifnot(identical(x, unlist(x)))

 
Článek ze dne 17. 3. 2015 byl naposledy upraven dne 17. 3. 2015 a zobrazen celkem 385×, naposledy dne 12. 7. 2018 v 0:56.
 
   

Komentáře:

Jméno autora:
Email (nebude zveřejněn):
Komentář:
Sem napiš slovo Adamov:




Stránka:
 
Citace: Kalina, J., Sloupová, K., Vérteši, M., Správným směrem [online]. Jiří Kalina, 2014 [cit. 2018-07-16]
Dostupné z: http://spravnym.smerem.cz/Tema/%5BR%5D%20unlist.
 
Desktopová verze | Mobilní verze