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

如何在R中重命名多条观测值 实现工作日缩写转换为全名称

R语言tibble星期缩写转全拼实现方法

你可以通过以下几种常用方法完成需求:

方法1:使用dplyr::case_match()显式映射

适合需要自定义调整匹配规则的场景,逻辑清晰、容错性高。

# 加载dplyr包,tidyverse环境默认包含该包
library(dplyr)

# 示例数据,可替换为你自己的tibble
df <- tibble(
  col1 = 1:7,
  col2 = rnorm(7),
  week_days = c("mo", "tu", "we", "th", "fr", "sa", "su")
)

# 替换week_days列的缩写为全拼
df <- df %>%
  mutate(
    week_days = case_match(
      week_days,
      "mo" ~ "monday",
      "tu" ~ "tuesday",
      "we" ~ "wednesday",
      "th" ~ "thursday",
      "fr" ~ "friday",
      "sa" ~ "saturday",
      "su" ~ "sunday"
    )
  )

方法2:使用命名向量批量映射

适合映射关系固定的场景,代码更简洁。

# 构造映射向量,键为缩写、值为对应全拼
week_map <- c(
  "mo" = "monday",
  "tu" = "tuesday",
  "we" = "wednesday",
  "th" = "thursday",
  "fr" = "friday",
  "sa" = "saturday",
  "su" = "sunday"
)

# 批量替换列值
df <- df %>%
  mutate(week_days = week_map[week_days])

方法3:基础R实现(无需加载第三方包)

依赖原生函数完成操作,不需要额外安装依赖。

# 通过factor的标签映射完成替换
df$week_days <- factor(
  df$week_days,
  levels = c("mo", "tu", "we", "th", "fr", "sa", "su"),
  labels = c("monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday")
)

# 如果你不需要因子类型,可转成字符串格式
df$week_days <- as.character(df$week_days)

注意事项

  • 如果你的week_days列存在大小写不统一的情况,匹配前可以先调用tolower(week_days)统一转为小写,避免匹配失败
  • 所有方法默认直接覆盖原week_days列,如果你需要保留原始数据,可以在mutate时创建新列,比如week_days_full = ...

内容的提问来源于stack exchange,提问作者Chrisabe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:45:05