Úvod
Témata
Všechna
Kontakt

Oblíbené

Vodojemy Žluťák
Wolfova vila
Podzemí
Nebeská štola
Vlečky
Tunely pod Radlasem

Nejčtenější

Druhé Brno
Druhá Praha
Wolfova vila Stárkov
Vodojemy při ulici Tvrdého
Brněnské podzemí
Bondyho vila Nově Město nad Metují

Nejnovější

Bytový dům Palackého 28
Sklepení za domem Pražská 40
Pivovar Meisterbräu Halle
Železniční trať Brno – Havlíčkův Brod
Стоўбцы (žst)
Сянки (žst)
Kozubnik
Železniční trať Tišnov – Žďár nad Sázavou
Štola nad Hálovým mlýnem
Plzenecká železnice

Náhodné

Doly (žzast)
Srbsko (žzast)
Pištín
 
Jméno:
Heslo:

 
 
 

[R] NA

Not available / chybějící hodnoty

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

Popis

NA je logická konstanta délky 1, obsahující indikátor chybějící hodnoty. NA lze konvertovat na libovolný jiný typ vektoru mimo typu raw. Existují také konstanty NA_integer_, NA_real_, NA_complex_ a NA_character_ ostatních atomických vektorových typů, které odpovídají chybějícím hodnotám. Všechny patří mezi rezervovaná slova (Reserved) jazyka R.

Generická funkce is.na slouží ke zjištění chybějících prvků.

Generická funkce is.na<- nastavuje prvky na NA.

Generická funkce anyNA implementuje funkci any(is.na(x)) potenciálně rychlejším způsobem (zejména pro atomické vektory).

Použití

NA
is.na(x)
anyNA(x, recursive = FALSE)

## S3 metoda pro tridu 'data.frame'
is.na(x)

is.na(x) <- value

Argumenty

xR objekt k otestování: implicitní metoda pro is.na zpracovává atomické vektory, seznamy (list) a párové seznamy (pairlist): funkce pro anyNA umí také zpracovat NULL.
recursivelogická hodnota: má být funkce anyNA použita rekurzivně na seznamy (list) a párové seznamy (pairlist)?
valuevhodný indexový vektor pro použití s x.

Podrobnosti

Hodnota NA typu character není totéž, co textový řetězec "NA". Programátoři, kteří potřebují explicitně vyjádřit chybějící hodnotu textového řetězce mohou použít výraz NA_character_ (namísto nesymyslného "NA") nebo nastavit prvky vektoru na NA pomocí funkce is.na<-.

is.na a anyNA jsou generické: lze vytvářet metody pro zpracování specifických tříd objektů, viz InternalMethods.

Funkce is.na<- nabízí bezpečnější cestu k nastavení chybějících hodnot. Například se chová jinak v případě faktorů.

Numerické výpočty pracující s hodnotou NA běžně vrací výsledek NA: možnou výjimkou je současné zpracování hodnot NaN (not a number), které se mohou rovněž objevit ve výsledku. Logické výpočty zpracovávají NA jako chybějící hodnotu TRUE/FALSE a tím pádem může být jejich výsledkem TRUE nebo FALSE, poklud není logický výraz závislý na operandu NA.

Implicitní metoda pro anyNA zpracovává atomické vektory bez tříd a hodnotu NULL. Volá se ve tvaru any(is.na(x)) na objekty se třídami, pro recursive = FALSE, na seznamu (list) a párové seznamy (pairlist).

Hodnota

Implicitní metoda pro is.na aplikovaná na atomický vektor vrací vektor logických hodnot o stejné délce, jako je délka argumentu x, obsahující prvky TRUE pro prvky NA, případně NaN pro vektory typu numeric a complex a FALSE v ostatních případech. (Komplexní hodnota má přiřazenu hodnotu NA v případě, že je její imaginární nebo reálná (příp. obě) část rovna NA nebo NaN. Atributy dim, dimnames and names přechází na výsledek beze změny.

Implicitní metody umí také zpracovat seznamy (list) a párové seznamy (pairlist):
Pro is.na je po prvcích výsledek roven FALSE kromě případů, kdy je daný prvek jednoprvkový atomický vektor a jediným oprvkem tohoto vektoru je hodnota NA nebo NaN (povšimněte si, že jakákoliv is.na metoda pro třídu prvku je ignorována).
Funkce (recursive = FALSE)anyNA funguje stejně jako is.na; funkce anyNA(recursive = TRUE) aplikuje anyNA na každý prvek jednotlivě.

Metoda is.na pro datové rámce vrací matici logických hodnot o stejné dimenzi jako původní datový rámec s názvy dimenzí (dimnames) převzatými z řádkových a sloupcových názvů původního datového rámce.

anyNA(NULL) vrací FALSE: is.na(NULL) vrací logical(0) s varováním.

Reference

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
Chambers, J. M. (1998) Programming with Data. A Guide to the S Language. Springer.

Viz také

NaN, is.nan atd. a užitečnou funkci complete.cases.

na.action, na.omit, na.fail pro ladění jiných funkcí za účelem zpracování chybějících hodnot.

Příklady

is.na(c(1, NA)) #> FALSE TRUE
is.na(paste(c(1, NA))) #> FALSE FALSE

(xx <- c(0:4))
is.na(xx) <- c(2, 4)
xx #> 0 NA 2 NA 4
anyNA(xx) # TRUE

# Nektere logicke operace nevraci NA
c(TRUE, FALSE) & NA
c(TRUE, FALSE) | NA


## Mereni rozdilu vypocetni rychlosti v oblibenych pripadech:
## rozdil zavisi na platforme, obvykle cca 3x.
x <- 1:10000; x[5000] <- NaN # zmeni x na double
if(require("microbenchmark")) { # nefunguje spolehlive na vsech platformach
print(microbenchmark(any(is.na(x)), anyNA(x)))
} else {
nSim <- 2^13
print(rbind(is.na = system.time(replicate(nSim, any(is.na(x)))),
anyNA = system.time(replicate(nSim, anyNA(x)))))
}


## anyNA() muze fungovat rekurzivne se seznamy (list):
LL <- list(1:5, c(NA, 5:8), c("A","NA"), c("a", NA_character_))
L2 <- LL[c(1,3)]
sapply(LL, anyNA); c(anyNA(LL), anyNA(LL, TRUE))
sapply(L2, anyNA); c(anyNA(L2), anyNA(L2, TRUE))

## ... kdyz pro seznamy, tak take pro datove ramce:
dN <- dd <- USJudgeRatings; dN[3,6] <- NA
anyNA(dd) # FALSE
anyNA(dN) # TRUE

 
Článek ze dne 25. 1. 2016 byl naposledy upraven dne 25. 1. 2016 a zobrazen celkem 459×, naposledy dne 22. 10. 2017 v 22:41.
 
   

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. 2017-10-23]
Dostupné z: http://spravnym.smerem.cz/Tema/%5BR%5D%20NA.
 
Desktopová verze | Mobilní verze