You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 15:12:22