📜  检查 R 中每个 DataFrame 列的数据类型

📅  最后修改于: 2022-05-13 01:55:44.080000             🧑  作者: Mango

检查 R 中每个 DataFrame 列的数据类型

在本文中,我们将讨论如何使用 R 编程语言识别给定数据帧的列中变量的数据类型。我们将在本文中使用str() 和 sapply()函数来检查数据帧中每一列的数据类型。

方法一:使用str()函数

R 语言中的str()函数用于紧凑地显示 R 对象的内部结构。它甚至可以显示嵌套的大型列表的内部结构。它为基本 R 对象提供单行输出,让用户了解对象及其组成部分。

示例 1:在下面的代码中,我们在str()函数中将数据帧作为参数传递,因为我们要检查其数据类型。请注意,“名称”列被标识为Factor ,roll 列被标识为num 或 numeric ,日期列被标识为Date (因为我们已经使用as.Date()函数将其转换为 Date 数据类型),pwd 列被标识为logi 或 Logic数据类型。

代码:

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()函数将列表、向量或数据框作为输入,并以向量或矩阵的形式给出输出。它对列表对象的操作很有用,并返回与原始集合长度相同的列表对象。

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"