Check Data Type of each DataFrame Column in R - GeeksforGeeks

21 Apr, 2021
In this article, we will discuss how to identify the data type of variables in a column of a given dataframe using R Programming language. We will be using str() and sapply() function in this article to check the data type of each column in a dataframe. 
Method 1: Using str() function
str() function in R Language is used for compactly displaying the internal structure of an R object. It can display even the internal structure of large lists which are nested. It provides one-liner output for the basic R objects letting the user know about the object and its constituents. 
Example 1: In the code below, we are passing a dataframe as an argument in the str() function as we want to check its datatype. Notice the “name” column is identified as Factor, roll column is identified as num or numeric, date column is identified as Date(as we have used as.Date() function to convert it to the Date data type), pwd column is identified as logi or Logic data type.
Syntax: str(object, ...)
Parameter: object: Any R object about which information is required.
Code:
R
# sample dataframedf <- data.frame(name = c("Welcome", "to", "Geeks", "for", "Geeks"),                 roll = c(10, 40.1, 50.5, 80, 70),                 date = as.Date(c("2001-10-30","2000-01-21",                                  "1999-02-16","1950-12-03"                                  ,"1995-11-09")),                                    pwd = c(FALSE, TRUE, TRUE, TRUE, FALSE)                 )# checks the data type of each columnstr(df)
Output:
'data.frame':    5 obs. of  4 variables:
 $ name: Factor w/ 4 levels "for","Geeks",..: 4 3 2 1 2
 $ roll: num  10 40.1 50.5 80 70
 $ date: Date, format: "2001-10-30" "2000-01-21" ...
 $ pwd : logi  FALSE TRUE TRUE TRUE FALSE
Example 2:
Notice in the previous example “name” column is identified as Factor data type. We can pass “stringAsFactors=FALSE” as an argument while defining a dataframe if you want the “name” column to be identified as chr or character datatype.
Syntax:
stringAsFactors= FALSE
R
# sample dataframedf <- data.frame(name = c("Welcome", "to", "Geeks", "for", "Geeks"),                 roll = c(10, 40.1, 50.5, 80, 70),                 date = as.Date(c("2001-10-30","2000-01-21","1999-02-16",                                  "1950-12-03","1995-11-09")),                 pwd = c(FALSE, TRUE, TRUE, TRUE, FALSE),                  stringsAsFactors = FALSE                 )  # checks the data type of each columnstr(df)
Output:
'data.frame':    5 obs. of  4 variables:
 $ name: chr  "Welcome" "to" "Geeks" "for" ...
 $ roll: num  10 40.1 50.5 80 70
 $ date: Date, format: "2001-10-30" "2000-01-21" ...
 $ pwd : logi  FALSE TRUE TRUE TRUE FALSE
Method 2: Using sapply() and class() function
sapply() function in R Language takes a list, vector, or data frame as input and gives output in vector or matrix. It is useful for operations on list objects and returns a list object of the same length as the original set.
Syntax: sapply(X, FUN)
Parameters:
X: A vector or an object
FUN: Function applied to each element of x
The sapply() function takes an object(dataframe “df” in this case) and a function(class() in this case) as arguments, and it applies the function to each element of the object(dataframe in this case). In the code below, we have used sapply() function to apply class() function to each column of the dataframe, and the class() function returns the data type of the column.
Code:
R
# sample dataframedf <- data.frame(name = c("Welcome", "to", "Geeks", "for", "Geeks"),                 roll = c(10, 40.1, 50.5, 80, 70),                 date = as.Date(c("2001-10-30","2000-01-21","1999-02-16",                                  "1950-12-03","1995-11-09")),                 pwd = c(FALSE, TRUE, TRUE, TRUE, FALSE),                  stringsAsFactors = FALSE                 )  # checks the data type of each columnsapply(df,class)
Output:
 name        roll        date         pwd 
"character"   "numeric"      "Date"   "logical" 
Picked
R DataFrame-Programs
R-DataFrame
R Language
R Programs
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Change Color of Bars in Barchart using ggplot2 in R
How to Change Axis Scales in R Plots?
Group by function in R using Dplyr
How to Split Column Into Multiple Columns in R DataFrame?
How to filter R DataFrame by values in a column?
How to Split Column Into Multiple Columns in R DataFrame?
How to filter R DataFrame by values in a column?
How to filter R dataframe by multiple conditions?
Replace Specific Characters in String in R
Convert Matrix to Dataframe in R