Nedostupne vrijednosti

NA, NULL, NaN, Inf predstavljaju posebne simbole nedostupnih vrijednosti u R-u. NA predstavlja nedostajuće vrijednosti, dok ostali simboli su obično rezultat kalkulacija ili dodjeljivanja vrijednosti vektoru.

Zadatak: Ispitati koju nedostupnu vrijednost sadrže elementi datog vektora x.

> #definisati vekor x
> x <- c(1, 2, NA, 3, NaN, Inf, 4, -Inf)
> x
[1]    1    2   NA    3  NaN  Inf    4 -Inf
> is.na(x)
[1] FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE
> is.nan(x)
[1] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
> is.infinite(x)
[1] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE
> #sumiranje rezultata u data frame
> cbind.data.frame(x, na = is.na(x), nan = is.nan(x), infinite = is.infinite(x))
     x    na   nan infinite
1    1 FALSE FALSE    FALSE
2    2 FALSE FALSE    FALSE
3   NA  TRUE FALSE    FALSE
4    3 FALSE FALSE    FALSE
5  NaN  TRUE  TRUE    FALSE
6  Inf FALSE FALSE     TRUE
7    4 FALSE FALSE    FALSE
8 -Inf FALSE FALSE     TRUE
> 
> #provjera za NULL vrijednosti
> #definisti listu od 2 prazna elementa
> l <- vector("list", 2)
> l
[[1]]
NULL

[[2]]
NULL

> #provjeriti da li je prvi element liste NULL
> is.null(l[[1]])
[1] TRUE
> 
> #dodjeljivanje NULL vrijednosti elementu vektora
> c(1, NULL)
[1] 1

Zadatak: Izračunati aritmetičku sredinu datog vektora x.

> #definisati vekor x
> x <- c(1, 2, NA, 3, NaN, Inf, 4, -Inf)
> #pokusaj 1 - za date vrijednosti vektora x: rezultat NA vrijednost
> x
[1]    1    2   NA    3  NaN  Inf    4 -Inf
> mean(x)
[1] NA
> #pokusaj 2 - iskljucivanje NA vrijednosti: rezulta NaN vrijednost
> x[!is.na(x)]
[1]    1    2    3  Inf    4 -Inf
> mean(x[!is.na(x)])
[1] NaN
> #pokusaj 3 - iskljucivanje NA i Inf vrijednosti: rezultat 2.5
> mean(x[!is.na(x) & !is.infinite(x)])
[1] 2.5

Last updated

Was this helpful?