R – Data Types

Each variable in R has an associated data type. Each data type requires different amounts of memory and has some specific operations which can be performed over it.
R has the following basic data types and the following table shows the data type and the values that each data type can take.

Basic Data Types Values
Numeric Set of all real numbers
Integer Set of all integers, Z
Logical TRUE and FALSE
Complex Set of complex numbers
Character “a”, “b”, “c”, …, “@”, “#”, “$”, …., “1”, “2”, …etc

Numeric Datatype

Decimal values are called numerics in R. It is the default data type for numbers in R. If you assign a decimal value to a variable x as follows, x will be of numeric type.

filter_none

edit
close

play_arrow

link
brightness_4
code

# A simple R program
# to illustrate Numeric data type
  
# Assign a decimal value to x
x = 5.6 
  
# print the class name of variable
print(class(x)) 
  
# print the type of variable
print(typeof(x))

chevron_right


Output:

[1] "numeric"
[1] "double"

Even if an integer is assigned to a variable y, it is still being saved as a numeric value.

filter_none

edit
close

play_arrow

link
brightness_4
code

# A simple R program
# to illustrate Numeric data type
  
# Assign an integer value to y
y = 5 
  
# print the class name of variable
print(class(y)) 
  
# print the type of variable
print(typeof(y)) 

chevron_right


Output:



[1] "numeric"
[1] "double"

When R stores a number in a variable, it converts the number into a “double” value or a decimal type with at least two decimal places. This means that a value such as “5” here, is stored as 5.00 with a type of double and a class of numeric.

And also y is not an integer here can be confirmed with the is.integer() function.

filter_none

edit
close

play_arrow

link
brightness_4
code

# A simple R program
# to illustrate Numeric data type
  
# Assign a integer value to y
y = 5 
  
# is y an integer?
print(is.integer(x))  

chevron_right


Output:

[1] FALSE

Integer Datatype

R supports integer data types which are the set of all integers. You can create as well as convert a value into an integer type using the as.integer() function. You can also use the capital ‘L’ notation as a suffix to denote that a particular value is of the integer data type.

filter_none

edit
close

play_arrow

link
brightness_4
code

# A simple R program
# to illustrate integer data type
  
# Create an integer value
x = as.integer(5
  
# print the class name of x
print(class(x)) 
  
# print the type of x
print(typeof(x)) 
  
# Declare an integer by appending an L suffix.
y = 5L 
  
# print the class name of y
print(class(y)) 
  
# print the type of y
print(typeof(y)) 

chevron_right


Output:

[1] "integer"
[1] "integer"
[1] "integer"
[1] "integer"

Logical Datatype

R has logical data types that take either a value of true or false. A logical value is often created via a comparison between variables.

filter_none

edit
close

play_arrow

link
brightness_4
code

# A simple R program
# to illustrate logical data type
  
# Sample values
x = 4 
y = 3
  
# Comparing two values
z = x > y
  
# print the logical value
print(z)
  
# print the class name of z
print(class(z)) 
  
# print the type of z
print(typeof()) 

chevron_right


Output:

[1] TRUE
[1] "logical"
[1] "logical"

Complex Datatype

R supports complex data types which are set of all the complex numbers. The complex data type is to store numbers with an imaginary component.



filter_none

edit
close

play_arrow

link
brightness_4
code

# A simple R program
# to illustrate complex data type
  
# Assign a complex value to x
x = 4 + 3i 
  
# print the class name of x
print(class(x)) 
  
# print the type of x
print(typeof(x)) 

chevron_right


Output:

[1] "complex"
[1] "complex"

Character Datatype

R supports character data types where you have all the alphabets and special characters. It stores character values or strings. Strings in R can contain alphabets, numbers, and symbols. The easiest way to denote that a value is of character type in R is to wrap the value inside single or double inverted commas.

filter_none

edit
close

play_arrow

link
brightness_4
code

# A simple R program
# to illustrate character data type
  
# Assign a character value to char
char = "Geeksforgeeks" 
  
# print the class name of char
print(class(char)) 
  
# print the type of char
print(typeof(char)) 

chevron_right


Output:

[1] "character"
[1] "character"

There are several tasks that can be done using data types. Let’s understand each task with its action and the syntax for doing the task along with an R code to illustrate the task.

Find data type of an object

To find the data type of an object you have to use class() function. The syntax for doing that is you need to pass the object as an argument to the function class() to find the data type of an object.

Syntax:

class(object)

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

# A simple R program
# to find data type of an object
  
# Logical
print(class(TRUE))
  
# Integer
print(class(3L))
  
# Numeric
print(class(10.5))
  
# Complex
print(class(1+2i))
  
# Character
print(class("12-04-2020"))

chevron_right


Output:

[1] "logical"
[1] "integer"
[1] "numeric"
[1] "complex"
[1] "character"

Type verification

To do that, you need to use the prefix “is.” before the data type as a command. The syntax for that is, is.data_type() of the object you have to verify.

Syntax:



is.data_type(object)

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

   
# A simple R program
# Verify if an object is of a certain datatype
  
# Logical
print(is.logical(TRUE))
  
# Integer
print(is.integer(3L))
  
# Numeric
print(is.numeric(10.5))
  
# Complex
print(is.complex(1+2i))
  
# Character
print(is.character("12-04-2020"))
  
print(is.integer("a"))
  
print(is.numeric(2+3i))

chevron_right


Output:

[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] FALSE
[1] FALSE

Coerce or convert the data type of an object to another

This task is interesting where you can change or convert the data type of one object to another. To perform this action you have to use the prefix “as.” before the data type as the command. The syntax for doing that is as.data_type() of the object which you want to coerce.

Syntax:

as.data_type(object)

Note: All the coercions are not possible and if attempted will be returning an “NA” value.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

# A simple R program
# convert data type of an object to another
  
# Logical
print(as.numeric(TRUE))
  
# Integer
print(as.complex(3L))
  
# Numeric
print(as.logical(10.5))
  
# Complex
print(as.character(1+2i))
  
# Can't possible
print(as.numeric("12-04-2020"))

chevron_right


Output:

[1] 1
[1] 3+0i
[1] TRUE
[1] "1+2i"
[1] NA
Warning message:
In print(as.numeric("12-04-2020")) : NAs introduced by coercion



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.