📜  在 R 中转换数据表的列类(1)

📅  最后修改于: 2023-12-03 15:23:17.312000             🧑  作者: Mango

在 R 中转换数据表的列类

在 R 中,我们可以通过以下方式转换数据表的列类:

转换为字符型(character)

使用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)
转换为数字型(numeric)

使用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)]
转换为日期型(Date)

使用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)
转换为因子型(factor)

使用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 中转换数据表的列类的介绍,希望对你有所帮助!