如何在R语言中将数字1-4映射为对应的季节字符
解决R中将数字季节映射为名称的问题
给你几种适合新手的简单方法,直接替换代码里的df为你的数据框名称就行:
方法1:基础R嵌套ifelse(逻辑直观)
df$season_name <- ifelse(df$season == 1, "Spring", ifelse(df$season == 2, "Summer", ifelse(df$season == 3, "Autumn", "Winter")))
逐层判断season列的数值,返回对应的季节名称,最后一个分支默认匹配数值4的情况。
方法2:用factor快速转换(简洁高效)
利用因子的水平映射功能,一步完成转换:
df$season_name <- factor(df$season, levels = c(1, 2, 3, 4), labels = c("Spring", "Summer", "Autumn", "Winter"))
如果需要把结果转换成普通字符串,再加一步:
df$season_name <- as.character(df$season_name)
用factor的好处是后续做统计或可视化时,季节会按你设定的顺序(春-夏-秋-冬)排列,而不是默认的字母顺序。
方法3:tidyverse的case_when(可读性拉满)
如果你正在学习tidyverse工具包,用dplyr的case_when会更清晰:
library(dplyr) df <- df %>% mutate(season_name = case_when( season == 1 ~ "Spring", season == 2 ~ "Summer", season == 3 ~ "Autumn", season == 4 ~ "Winter" ))
mutate用来添加新列,case_when按条件一一匹配,逻辑一目了然。如果你的数据里有非1-4的异常值,可以在最后加一行TRUE ~ "Unknown"来标记。
内容的提问来源于stack exchange,提问作者yy2j2022
相关产品推荐
相关产品推荐

