You need to enable JavaScript to run this app. R将chr类型run_date转为Date时报错Only strings can be converted to symbols怎么办
优惠活动
大模型
产品
解决方案
定价
更多

R将chr类型run_date转为Date时报错Only strings can be converted to symbols怎么办

错误原因
  • 核心问题是代码拼写错误:你把dplyrmutate_at函数用于列选择的vars()误写为了基础包求方差的var()函数
    • var()返回的是数值计算结果,无法被识别为列选择的符号对象,因此触发"Only strings can be converted to symbols"错误
    • 你过往在其他dataframe上能运行成功,大概率是其他场景下你正确拼写了vars(),本次属于手误
修复方案

方案1:修正原代码拼写

直接将var替换为vars即可正常运行:

zUXQ_Boxes_Master <- zUXQ_Boxes_Master %>% mutate_at(vars(run_date), as.Date)

方案2:使用新版dplyr语法(更推荐)

从dplyr 1.0.0版本开始,官方已弃用mutate_at系列函数,推荐使用mutate结合across完成列操作,写法更简洁易懂:

# 仅修改run_date列
zUXQ_Boxes_Master <- zUXQ_Boxes_Master %>% mutate(run_date = as.Date(run_date))

如果需要同时修改多个符合规则的列,across的优势会更明显,示例如下:

# 修改所有后缀为_date的列为日期类型
zUXQ_Boxes_Master <- zUXQ_Boxes_Master %>% 
  mutate(across(ends_with("_date"), as.Date))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 04:12:08