Hlavní stránka
Škola
Doprava
Táboření a kluby
Reportáže
Fotografie
Témata
Ostatní
Rozcestník
Ke stažení
Sázky
Návštěvní kniha
Kalendář
Kontakt
Home
Česká verze. English version. Российская версия.
Deutsche Version. Wersja polska.
Jméno:
Heslo:

Nová témata:

Dolní vodojem Adamovských strojíren
Úzkokolejka Hlinsko - kamenolom
Vlečka Ondřejovice - strojírny
Ondřejovice (žst)
Budova homogenizace v Pisárkách
Kalendář Druhé Brno 2019
Sklepy pod náměstím Na Marku
Podzemní rafinérie Havlíčkův Brod
Текстиль (žzast)
Letní kino v Dušanbe
Fotka

[R] exists


Je objekt definován?

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

Popis

Hledat R objekt daného jména a případně ho vrátit

Použití

exists(x, where = -1, envir = , frame, mode = "any",
       inherits = TRUE)

get0(x, envir = pos.to.env(-1L), mode = "any", inherits = TRUE,
     ifnotfound = NULL)

Argumenty

x

jméno proměnné (zadáno jako řetězec znaků).

where

kde hledat objekt (viz. sekce Detaily); v případě vynechání, funkce bude hledat tak, jakoby se jméno objektu objevilo necitované ve výrazu.

envir

alternativní způsob specifikace prostředí, ve kterém hledat, ale většinou je jednodušší použít jenom where argument.

frame

rámec volajícího seznamu. Ekvivalentní k dávání where jako sys.frame(frame).

mode

režim nebo typ hledaného objektu: viz. sekce Detaily

inherits

mají být prohledány uzavírající rámce prostředí?

ifnotfound

návratová hodnota get0(x, *) když x neexistuje.

Detaily

where argument může specifikovat prostředí, ve kterém hledat objekt, kterýmkoliv z následujících způsobů: jako integer (pozice v search seznamu); jako jméno (řetězec znaků) elementu v search seznamu; nebo jako environment (včetně používání sys.frame k přistoupení k momentálně aktivním voláním funkcí). envir argument je alternativní způsob specifikace prostředí, ale je tam primárně pro zajištění kompatibility.

Tahle funkce hledá, jestli jméno x má navázanou hodnotu ve specifikovaném prostředí. Jestli je inherits TRUE a hodnota pro x není nalezena ve specifikovaném prostředí, uzavírající rámce prostředí jsou prohledávány dokud není nalezeno x. Viz. environment a ‘R Language Definition’ manuál pro detaily o struktuře prostředí a jejich uzávěr.

Varování: inherits = TRUE je předvolené chování pro R, ale ne pro S.

Jestli je mode specifikována, jsou hledány jenom objekty toho typu. mode může specifikovat jednu z kolekcí "numeric" a "function" (viz. mode): jakýkoliv člen kolekce je dostačující. (Tohle dokonce platí, jestliže je člen kolekce specifikován, takže například mode = "special" bude hledat jakýkoliv typ funkce.)

Hodnota

exists(): Logical, true jenom jestli je nalezen objekt správného jména a režimu.

get0(): Objekt—jako z get(x, *)— jestli exists(x, *) je true, jinak ifnotfound.

Poznámka

get0(), je jednodušší na čtení, ale víc neefektivní

  if (exists(myVarName, envir = myEnvir)) {
    r <- get(myVarName, envir = myEnvir)
    ## ... zaobcházet s r ...
  }

můžete použít víc efektivní (a poněkud těžší na čtení)

  if (!is.null(r <- get0(myVarName, envir = myEnvir))) {
    ## ... zaobcházet s r ...
  }

Reference

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

Viz. také

get a hasName. Pro poněkud jiný druh kontroly “existence”, konkrétně jestli byli specifikovány argumenty funkce, missing ;a pro jěště jiný typ, a to jestli soubor existuje, file.exists.

Příklady

## Definovat náhradní funkci jestli je potřeba:
if(!exists("some.fun", mode = "function")) some.fun <- function(x) { cat("some.fun(x)\n"); x }
search()
exists("ls", 2) # true even though ls is in pos = 3
exists("ls", 2, inherits = FALSE) # false

## Tyhle jsou true (ve většině případů):
identical(ls, get0("ls"))
identical(NULL, get0(".foo.bar.")) # default ifnotfound = NULL (!)



Článek na dané téma si můžete přečíst rovněž na serveru Správným směrem.cz

Článek ze dne 11. 8. 2018 byl naposledy upraven dne 11. 8. 2018 a zobrazen celkem 183×, naposledy dne 16. 12. 2018 v 1:53.

Komentáře:

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




Stránka: