Special values in R
R comes with some special values. Some of the special values in R are NA, Inf, -Inf, and NaN.
How to do it…
The missing values are represented in R by NA. When we download data, it may have missing data and this is represented in R by NA:
z = c( 1,2,3, NA,5,NA) # NA in R is missing Data
To detect missing values, we can use the install.packages()
function or is.na()
, as shown:
complete.cases(z) # function to detect NA
is.na(z) # function to detect NA
To remove the NA values from our data, we can type the following in our active R session console window:
clean <- complete.cases(z) z[clean] # used to remove NA from data
Please note the use of square brackets ([
]
) instead of parentheses.
In R, not a number is abbreviated as NaN. The following lines will generate NaN values:
##NaN 0/0 m <- c(2/3,3/3,0/0) m
The is.finite
, is.infinite
, or is.nan
functions will generate logical values (TRUE
or FALSE
).
is.finite(m) is.infinite(m) is.nan(m)
The following line will generate inf
as a special value in R:
## infinite k = 1/0
Tip
Downloading the example code
You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
How it works…
complete.cases(z)
is a logical vector indicating complete cases that have no missing value (NA). On the other hand, is.na(z)
indicates which elements are missing. In both cases, the argument is our data, a vector, or a matrix.
R also allows its users to check if any element in a matrix or a vector is NA by using the anyNA()
function. We can coerce or assign NA to any element of a vector using the square brackets ([ ]). The [3]
input instructs R to assign NA to the third element of the dk
vector.