检查 R 中每个 DataFrame 列的数据类型
在本文中,我们将讨论如何使用 R 编程语言识别给定数据帧的列中变量的数据类型。我们将在本文中使用str() 和 sapply()函数来检查数据帧中每一列的数据类型。
方法一:使用str()函数
R 语言中的str()函数用于紧凑地显示 R 对象的内部结构。它甚至可以显示嵌套的大型列表的内部结构。它为基本 R 对象提供单行输出,让用户了解对象及其组成部分。
示例 1:在下面的代码中,我们在str()函数中将数据帧作为参数传递,因为我们要检查其数据类型。请注意,“名称”列被标识为Factor ,roll 列被标识为num 或 numeric ,日期列被标识为Date (因为我们已经使用as.Date()函数将其转换为 Date 数据类型),pwd 列被标识为logi 或 Logic数据类型。
Syntax: str(object, …)
Parameter: object: Any R object about which information is required.
代码:
R
# sample dataframe
df <- 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 column
str(df)
R
# sample dataframe
df <- 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 column
str(df)
R
# sample dataframe
df <- 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 column
sapply(df,class)
输出:
'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
示例 2:
请注意,在前面的示例中, “name”列被标识为Factor数据类型。如果您希望将“名称”列标识为chr 或字符数据类型,我们可以在定义数据帧时将“ stringAsFactors=FALSE”作为参数传递。
句法:
stringAsFactors= FALSE
电阻
# sample dataframe
df <- 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 column
str(df)
输出:
'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
方法二:使用 sapply() 和 class()函数
R 语言中的sapply()函数将列表、向量或数据框作为输入,并以向量或矩阵的形式给出输出。它对列表对象的操作很有用,并返回与原始集合长度相同的列表对象。
Syntax: sapply(X, FUN)
Parameters:
X: A vector or an object
FUN: Function applied to each element of x
sapply()函数 将一个对象(本例中的数据帧“df”)和一个函数(本例中的 class())作为参数,并将该函数应用于对象的每个元素(本例中的数据帧)。在下面的代码中,我们使用sapply()函数将class()函数应用于数据帧的每一列,并且class()函数返回列的数据类型。
代码:
电阻
# sample dataframe
df <- 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 column
sapply(df,class)
输出:
name roll date pwd
"character" "numeric" "Date" "logical"