as.list
Seznamy - obecné a tečkové páry
list {base} | Dokumentace R v češtině |
Popis
Funkce umožnují sestavovat, převádět a kontrolovat oba typy seznamů R.
Použií
list(...)
pairlist(...)
as.list(x, ...)
## S3 metoda pro třídu 'prostředí'
as.list(x, all.names = FALSE, sorted = FALSE, ...)
as.pairlist(x)
is.list(x)
is.pairlist(x)
alist(...)
Argumenty
... |
objekty, třeba i pojmenované. |
x |
objekt, který má být otestován nebo převeden. |
all.names |
logický argument, který značí, zda se mají kopírovat všehcny hodnoty nebo pouze ty, jejichž názvy nezačínají tečkou (výchozí nastavení). |
sorted |
logický argument, který značí, zda mají být |
Detaily
Téměř všechny seznamy jsou uvnitř R internally generické vekotry, whereas tradiční seznam tečkových párů (jako v LISP) je k dispozici, ovšem uživatelé si jej zobrazují zřídka (výjimkou je formals
používané pro funkce).
Argumenty k list
nebo pairlist
jsou ve tvaru value
nebo tag = value
. Funkce navrací seznam nebo seznam tečkových párů tvořených zadanými argumenty, kde jsou hodnoty buď tagovány nebo netagovány podle tvaru, v jakém byl argument zadán.
alist
pracuje se svými argumenty tak, jakoby popisovali argumenty funkce. Argumenty, zadány jako hodnoty, nejsou vyhodnoceny a jsou povolené taggované argumenty bez hodnoty, zatímco funkce list
je ignoruje. alist
je často používaná ve spojitosti s formals
.
Funkce as.list
se pokusí převést její argument na seznam. U funkcí je navrácen zřetězený seznam formálních argumentů a tělo funkce. U výrazů je navrácen seznam jednotlivých prvků. as.list
je generická funkce a jako výchozí metodu volá as.vector(mode = "list")
, tedy mohou být uplatněny metody pro as.vector
. as.list
převádí faktor na seznam jednoprvkových faktorů. Vlastnosti mohou být ztraceny, není-li argument již seznam nebo výraz. (Je zde odlišnost od některých funkcí jako například as.character
, kdy dojde vždy ke ztrátě vlastností).
is.list
navrátí TRUE
, pokud je argument seznam nebo párový seznam o délce length
> 0. is.pairlist
navrátí TRUE
, pokud je argument párový seznam, nebo NULL
(viz níže).
Metoda "environment"
kopíruje pro as.list
páry název-hodnota (názvy, které nezačínají tečkou) z prostředí do jmenného seznamu. Uživatel může zažádat, aby byly překopírovány všechny pojmenované objekty. Pokud není sorted = TRUE
, seznam není v žádném určitém pořadí (vzniklé pořadí se odvíjí podle toho, jak objekty vznikaly a jestli bylo prostředí hešované). Žádná přidružená prostředí nejsou hledána. (Kopírované objekty jsou nejdříve zdvojeny, proto se může jednat o náročnější operaci.) Povšimněte si možné inverzní operace, metoda as.environment()
pro seznamy.
V případě prázdného párového seznamu je pairlist()
stejný jako NULL
. Je to rozdíl oproti list()
: některé (ne všechny) operace budou píše podporovat prázný párový seznam nežli prázdný seznam.
as.pairlist
je implementován jako as.vector(x, "pairlist")
, a tedy vyšle metodu pro generickou funkci as.vector
. Seznamy jsou kopírovány prvek po prvku do párového seznamu. Názvy seznamu se použijí jako tagy pro párový seznam.
list
, is.list
a is.pairlist
jsou funkce primitive functions.
Reference
Becker, R. A., Chambers, J. M. a Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
Viz také
vector("list", length)
pro vytvoření seznamu s prázdnými komponentami; c
pro zřetězení; formals
. unlist
je přibližně obrácená as.list()
.
‘plotmath’ pro použití seznamu v anotaci grafu.
Příklady
require(graphics)
# vytvořit strukturu, kterou lze zobrazit graficky pts <- list(x = cars[,1], y = cars[,2]) plot(pts) is.pairlist(.Options)
# párový seznam na uživatleské úrovni
## "pre-alokace" prázdného listu s délkou 5 vector("list", 5) # Seznam argumentů f <- function() x
# Berte v úvahu specifikum argumentu "..." : formals(f) <- al <- alist(x = , y = 2+3, ... = ) f al
## převod prostředí->seznam e1 <- new.env() e1$a <- 10 e1$b <- 20 as.list(e1)