如何将DataFrame中的荷兰语星期转换为英语(Locale设置失败)
无需修改系统Locale的荷兰语星期转英语方法
下面提供两种无需修改系统Locale的转换方案,直接在数据处理流程中完成转换:
方法一:手动映射替换(适用于已知对应关系的场景)
创建荷兰语与英语星期的映射字典,使用dplyr::recode函数完成替换:
daily_activity <- dailyActivity_merged %>% clean_names() %>% mutate(activity_date = mdy(activity_date), day_week = weekdays(activity_date)) %>% rename(date = activity_date) %>% # 添加荷兰语转英语的映射逻辑 mutate(day_week = recode(day_week, "maandag" = "Monday", "dinsdag" = "Tuesday", "woensdag" = "Wednesday", "donderdag" = "Thursday", "vrijdag" = "Friday", "zaterdag" = "Saturday", "zondag" = "Sunday"))
方法二:使用lubridate直接生成英语星期标签(更高效)
借助lubridate包的wday()函数,在生成星期列时直接指定英语Locale,无需后续替换:
library(lubridate) daily_activity <- dailyActivity_merged %>% clean_names() %>% mutate(activity_date = mdy(activity_date), # 直接生成英语星期标签,指定locale参数 day_week = wday(activity_date, label = TRUE, locale = "English_US")) %>% rename(date = activity_date)
补充说明
- 方法一无需额外依赖(只要已加载dplyr),适合快速处理固定的语言映射;
- 方法二利用lubridate的本地化支持,一步生成目标格式,代码更简洁。
内容的提问来源于stack exchange,提问作者M.Smit
相关产品推荐
相关产品推荐

