Chapter 4 Data Types in R
4.1 Introduction
In this chapter, we will learn about the following data types:
- numeric/double
- integer
- character
- logical
- date/time
4.2 Numeric
In R, numbers are represented by the data type numeric. We will first create a variable and assign it a value. Next we will learn a few methods of checking the type of the variable.
# create two variables
number1 <- 3.5
number2 <- 3
# check data type
class(number1)## [1] "numeric"class(number2)## [1] "numeric"# check if data type is numeric
is.numeric(number1)## [1] TRUEis.numeric(number2)## [1] TRUEIf you carefully observe, integers are also treated as numeric/double. We will learn to create integers in a while. In the meanwhile, we have introduced two new funtions in the above example:
- class(): returns the- classor- type
- is.numeric(): tests whether the variable is of type- numeric
4.3 Integer
Unless specified otherwise, integers are treated as numeric or double. In this section, we will learn to create variables of the type integer and to convert other data types to integer.
- create a variable number1and assign it the value3
- check the data type of number1usingclass
- create a second variable number2usingas.integerand assign it the value3
- check the data type of number2usingclass
- finally use is.integerto check the data type of bothnumber1andnumber2
# create a variable and assign it an integer value
number1 <- 3
# create another variable using as.integer
number2 <- as.integer(3)
# check the data type
class(number1)## [1] "numeric"class(number2)## [1] "integer"# use is.integer to check data type
is.integer(number1)## [1] FALSEis.integer(number2)## [1] TRUE4.4 Character
Letters, words and group of words are represented by the data type character. All data of type character must be enclosed in single or double quotation marks. In fact any value enclosed in quotes will be treated as character. Let us create two variables to store the first and last name of a some random guy.
# first name
first_name <- "jovial"
# last name
last_name <- 'mann'
# check data type
class(first_name)## [1] "character"class(last_name)## [1] "character"# use is.charactert to check data type
is.character(first_name)## [1] TRUEis.character(last_name)## [1] TRUEYou can coerce any data type to character using as.character().
# create variable of different data types
age <- as.integer(30) # integer
score <- 9.8          # numeric/double
opt_course <- TRUE    # logical
today <- Sys.time()   # date time
as.character(age) ## [1] "30"as.character(score)## [1] "9.8"as.character(opt_course)## [1] "TRUE"as.character(today)## [1] "2021-06-02 16:25:27"4.5 Logical
Logical data types take only 2 values. Either TRUE or FALSE. Sich data types are created when we compare two objects in R using
comparison or logical operators.
- create two variables xandy
- assign them the values TRUEandFALSErespectively
- use is.logicalto check data type
- use as.logicalto coerce other data types tological
# create variables x and y
x <- TRUE
y <- FALSE
# check data type
class(x)## [1] "logical"is.logical(y)## [1] TRUEThe outcome of comparison operators is always logical. In the below example, we compare two numbers to see the outcome.
# create two numeric variables
x <- 3
y <- 4
# compare x and y
x > y## [1] FALSEx < y## [1] TRUE# store the result
z <- x > y
class(z)## [1] "logical"TRUE is represented by all numbers except 0. FALSE is represented only by 0 and no other numbers.
# TRUE and FALSE are represented by 1 and 0
as.logical(1)## [1] TRUEas.logical(0)## [1] FALSE# using numbers
as.numeric(TRUE)## [1] 1as.numeric(FALSE)## [1] 0# using different numbers
as.logical(-2, -1.5, -1, 0, 1, 2)## [1] TRUEUse as.logical() to coerce other data types to logical.
# create variable of different data types
age <- as.integer(30) # integer
score <- 9.8          # numeric/double
opt_course <- TRUE    # logical
today <- Sys.time()   # date time
as.logical(age) ## [1] TRUEas.logical(score)## [1] TRUEas.logical(opt_course)## [1] TRUEas.logical(today)## [1] TRUE