R FAQs: Handling Missing values in R

Question: What are the differences of missing values in R and other Statistical Packages?

Answer: Missing values (NA) cannot be used in comparisons, as already discussed in previous post on missing values in R. In other statistical packages (softwares) a “missing value” is assigned some code either very high or very low in magnitude such as 99 or -99 etc. These coded values are considered as missing and can be used to compare to other values and other values can be compared to missing values. In R language NA values are used for all kinds of missing data, while in other packages, missing strings and missing numbers are represented differently, for example, empty quotations for strings, and periods, large or small numbers. Similarly non-NA values cannot be interpreted as missing while in other packages system missing values are designate from other values.

Question: What are NA options in R?

Answer: In previous post on missing values, I introduced is.na() function as a tool for both finding and creating missing values. The is.na() is one of several functions build around NA. Most of the other functions for missing values (NA) are options for na.action(). The possible na.action() settings within R are:

  • na.omit() and na.exclude(): These functions return the object with observations removed if they contain any missing (NA) values. The difference between these two functions na.omit() and na.exclude() can be seen in in some prediction and residual functions.
  • na.pass(): This function returns the object unchanged.
  • na.fail(): This function returns the object only if it contains no missing values.

To understand these NA options use the following lines of code.

getOption(“na.action”)
(m<-as.data.frame(matrix(c(1:5, NA), ncol=2)))
na.omit(m)
na.exclude(m)
na.fail(m)
na.pass(m)

Note that it is wise to both investigate the missing values in you data set and also make use of the help files for all functions you are willing to use for handling missing values. You should be either aware of and comfortable with the default treatments (handling) of missing values or specifying the treatment of missing values you want for you analysis.

R FAQS about Matrix | Data Structure for Matrix in R

Question: What is matrix in R?
Answer: In R language matrices are two dimensional arrays of elements all of which are of the same type, for example numbers, character strings or logical values.

Matrices may be constructed using the built in function “matrix”, which reshapes its first argument into a matrix having specified number of rows as second argument and number of columns as third matrix.

Question: Give an example of how matrix is constructed in R language?
Answer: A 3 by 3 matrix (3 rows and 3 columns) matrix may be constructed such as:

matrix(1:9, 3, 3)
matrix(c(1,2,3,4,5,6,7,8,9), 3, 3)matrix(runif(9), 3,3)

First two commands constructs a matrix of 9 elements having 3 rows and 3 columns consisting numbers from 1 up to 9. The third command makes a matrix of 3 rows and 3 columns with random numbers from uniform distribution.

Question: How the matrix elements are filled?
Answer: A matrix is filled by columns, unless the optional argument byrow is set to TRUE as argument in matrix command, for example

matrix(1:9, 3, 3, byrow=TRUE)

Question: Can matrix be stored in R?
Answer: Any matrix can be stored in R such as

m <- matrix(1:9, 3, 3)
mymatrix <- matrix( rnorm(16), nrow=4 )

Matrices are stored in “m” and “mymatrix” object. The second command construct a matrix having 16 elements with 4 rows from normal distribution having mean 0 and variance 1.

Question: what is the use of dim command in R?
Answer: The dim (dimension) is an attribute of matrix in R, which tells the number of rows and the number of columns of a matrix, for example,

dim(mymatrix)

This will results in output showing 4  4, meaning that 4 rows and 4 column matrix.

Question: Can we name rows of a matrix in R?
Answer: Yes in R language we can name rows of a matrix according to ones requirements, such as

rownames(mymatrix) <- c(“x1”, “x2”, “x3”, “x4”)
mymatrix

Question: Can column names be changes or updated in R?
Answer: The procedure is same as changing of rows name. For this purpose colnames command is used, for example

colnames(mymatrix)<-c(“A”, “B”, “C”, “D”)
mymatrix

Question: What is the purpose of attributes command for matrix in R?
Answer: The attributes function can be used to get information about dimension of matrix and dimnames (dimension names). For example;

attributes(mymatrix)

 

R FAQ missing values

Question: Can missing values be handled on R?
Answer: Yes, in R language one can handle missing values. The way of dealing with missing values is different as compared to other statistical softwares such as SPSS, SAS, STATA, EVIEWS etc.

Question: What is the representation of missing values in R Language?
Answer: In R missing values or data appears as NA. Note that NA is not a string nor a numeric value.

Question: Can R user introduce missing value(s) in matrix/ vector?
Answer: Yes user of R can create (introduce) missing values in vector/ Matrix. For example,

    x <- c(1,2,3,4,NA,6,7,8,9,10)
    y <- c(“a”, “b”, “c”, NA, “NA”)

Note that on y vector the fifth value of strong “NA” not a missing value.

Question: How one can check that there are missing value in a vector/ Matrix?
Answer: To check which values in a matrix/vector recognized as missing value by R language, use the is.na function. This function will return a vector of TRUE or FALSE. TRUE indicate that the value at that index is missing while FALSE indicate that the value is not a missing value. For example

> is.na(x)    # fifth element will appear as TRUE while all other will be FALSE
> is.na(y)    # fourth element will be true while all others as FALSE

Note that “NA” in second vector is not a missing value, therefore is.na will return FALSE for this value.

Question: In R language, can missing values be used comparisons?
Answer: No missing values in R cannot be used in comparisons. NA (missing values) is used for all kinds of missing data. Vector x is numeric and vector y is a character object. So Non-NA values cannot be interpreted as missing values. Write the command, to understand it

x < 0
y == NA
is.na(x) <- which(x–7); x1

Question: Provide an example for introducing NA in matrix?
Answer: Following command will create a matrix with all of the elements as NA.

matrix(NA, nrow=3, ncol=3)
matrix(c(NA,1,2,3,4,5,6,NA, NA), nrow=3, ncol=3)

R FAQS: R Packages

R FAQS: R Packages

Question: What is an R Package?
Answer: R package is a collection of objects that R Language can use. A package contain functions, data set, and documentation (which helps how to use the package) or other objects such as dynamically loaded libraries of already compiled code.

Question: How do I see which packages I have available?
Answer: To see which packages you have use the command at R prompt

> library()

Question: Which packages do I already have?
Answer: To see what packages are installed one can use the installed.packages() command a R prompt. Output will show the packages installed.

> installed.packages()
> installed.packages()[1:5,]

Question: How one can load a Package in R language?
Answer: Basic packages are already loaded. If you want to load downloaded version of packages use the command

> library(“package name”)
> library(“car”)

where package name is the name of the package you want to load. Here in example we used the “car”, it means “car” package will be loaded.

Question: How one can see the documentation of a particular package?
Answer: To see the documentation of particular package use the command

> library(help=”package name”)
> help(package=”package name”)
> help(package=”car”)
> library(help=”car”)

for more information about getting help follow the link: Getting Help in R Language

Question: How do I see the help for a specific function?
Answer: To get help about a function in R use command

> help(“function name”)
> ? function name
> ?Manova
> help(“Manova”)

Question: What functions and datasets are available in a package?
Answer: To check what functions and datasets are in a package using the help command at R prompt. This will provide package information giving list of functions and datasets.

> help(package=”MASS”)

Note that once a package is loaded, the help command can also be used with all available functions and datasets.

Question: How can one add or delete a package?
Answer: A package can be installed using command

> install.packages(“package name”)

and package can be removed or deleted using command

> remove.packages(“package name”)

R FAQs about Data Frame

Please load the require data set before running the commands given below in R FAQs related to data frame. As an example for R FAQs about data frame we are assuming iris data set that is available already in R. At R prompt write data(iris)

Question: How to name or rename a column in a data frame?
Answer: Suppose you want to change/ rename the 3rd column of the data frame, then on R prompt write

>names (iris)[,3] <- “new_name”

Suppose you want to change second and third column of the data frame

>names(irisi)[c(2,4)] <- c(“A”, “D”)

Note that names(iris) command is used to find the names of each column in a data frame.

Question: How you can determine the column information of a data frame such as the “names, type, missing values” etc.?
Answer: There are two built-in functions in R to find the information about columns of a data frame.

> str(iris)
>summary(iris)

Question: How a data frame can be exported in R, so that it can be used in other statistical software?
Answer: Use write.csv command to export the data in comma separated format (CSV).

> write.csv(iris, “iris.csv”, row.names=FALSE)

Question: How one can select a particular row or column of a data frame?
Answer: The easiest way is to use the indexing notation []

Suppose you want to select first column only, then at R prompt, write

>iris[,1]

Suppose we want to select the first column and also want to put the content in a new vector, then

>new <- iris[,1]

Suppose you want to select different columns, for example columns 1, 3, and 5, then

>newdata <- iris[, c(1, 3, 5)]

Suppose you want to select first and third row, then

>iris[c(1,2), ]

Question: How to deal with missing values in a data frame?
Answer: In R language it is easy to deal with missing values. Suppose you want to import a file names “file.csv” that contains missing values represented by a “.” (period), then on R prompt write

>data<-read.csv(“file.csv”, na.string= “.”)

If missing values are represented as “NA” values then write

>dataset<-read.csv(“file.csv”, na.string=”NA”)

For the case of built in data such (here iris), use

>data<-na.omit(iris)

 

%d bloggers like this: