在R语言中如何将0-6的数字转换为星期缩写字符?
R语言将数字星期转换为缩写的方法
下面给你几种简单易懂的实现方式,适合R语言新手:
方法1:基础R原生实现(无需额外包)
先定义一个与数字0-6对应的星期缩写向量,再利用R的索引特性匹配转换:
# 定义星期缩写向量,顺序对应0(Sun)到6(Sat) week_abbr <- c("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") # 假设你的数据框名为df,添加新列weekday_abbr df$weekday_abbr <- week_abbr[df$weekday + 1]
注:R的向量索引从1开始,所以给
weekday加1,让0对应向量第1个元素"Sun",以此类推。
方法2:使用dplyr包(tidyverse风格)
如果你习惯用tidyverse系列工具,dplyr的recode或case_when函数更直观:
第一步:安装并加载dplyr
install.packages("dplyr") library(dplyr)
用recode函数转换
df <- df %>% mutate(weekday_abbr = recode(weekday, `0` = "Sun", `1` = "Mon", `2` = "Tue", `3` = "Wed", `4` = "Thu", `5` = "Fri", `6` = "Sat"))
用case_when函数转换(逻辑更清晰)
df <- df %>% mutate(weekday_abbr = case_when( weekday == 0 ~ "Sun", weekday == 1 ~ "Mon", weekday == 2 ~ "Tue", weekday == 3 ~ "Wed", weekday == 4 ~ "Thu", weekday == 5 ~ "Fri", weekday == 6 ~ "Sat" ))
额外提示
如果你的weekday列是字符类型(比如"0"、"1"),需要先转为数值型再转换:
df$weekday <- as.numeric(df$weekday)
内容的提问来源于stack exchange,提问作者yy2j2022
相关产品推荐
相关产品推荐

