📅  最后修改于: 2023-12-03 15:23:17.312000             🧑  作者: Mango
在 R 中,我们可以通过以下方式转换数据表的列类:
使用as.character()
函数将列转换为字符型:
# 创建数据表
df <- data.frame(name = c("Tom", "Jerry", "Mickey"),
age = c(25, 30, 35),
gender = c("male", "male", "female"))
# 将列“age”转换为字符型
df$age <- as.character(df$age)
使用as.numeric()
函数将列转换为数字型:
# 创建数据表
df <- data.frame(name = c("Tom", "Jerry", "Mickey"),
age = c("25", "30", "35"),
gender = c("male", "male", "female"))
# 将列“age”转换为数字型
df$age <- as.numeric(df$age)
需要注意的是,一些字符串可能会被解析为 NA
,需要使用na.rm = TRUE
参数来删除这些值:
# 创建数据表
df <- data.frame(name = c("Tom", "Jerry", "Mickey"),
age = c("25", "30", "35"),
gender = c("male", "male", "female"),
salary = c("$5000", "$6000", "$7000"))
# 将列“salary”转换为数字型
df$salary <- as.numeric(gsub("\\$", "", df$salary)) # gsub()函数用于替换字符串中的字符
# 删除可能存在的 NA 值
df$salary <- df$salary[!is.na(df$salary)]
使用as.Date()
函数将列转换为日期型:
# 创建数据表
df <- data.frame(name = c("Tom", "Jerry", "Mickey"),
birthday = c("1990-01-01", "1985-05-06", "1980-10-10"),
gender = c("male", "male", "female"))
# 将列“birthday”转换为日期型
df$birthday <- as.Date(df$birthday)
使用as.factor()
函数将列转换为因子型:
# 创建数据表
df <- data.frame(name = c("Tom", "Jerry", "Mickey"),
age = c("young", "middle-aged", "old"),
gender = c("male", "male", "female"))
# 将列“age”转换为因子型
df$age <- as.factor(df$age)
值得注意的是,当我们使用 as.factor()
来将数值类型的列转换为因子型时,需要先将其转换为字符型,否则会出现意料之外的结果:
# 创建数据表
df <- data.frame(name = c("Tom", "Jerry", "Mickey"),
age = c(25, 30, 35),
gender = c("male", "male", "female"))
# 错误示范:将数值型列直接转换为因子型
df$age <- as.factor(df$age)
# 正确示范:先将数值型列转换为字符型,再转换为因子型
df$age <- as.factor(as.character(df$age))
以上就是在 R 中转换数据表的列类的介绍,希望对你有所帮助!