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

R语言中将数据框chr类型列转为Date类型时重复首行值问题

问题解决方法

你的问题出在mutate中错误引用了整个数据框的列,导致substr处理时没有按行生成对应的值,而是重复了第一行的结果。

错误原因

在管道%>%中,mutate的上下文已经是bigm_df,不需要再用bigm_df[4]来引用列——bigm_df[4]会提取整个第4列作为一个数据框对象,substr处理这种对象时会出现异常,最终导致新列重复第一行的值。

修正后的代码

假设你的Order Time是第4列(列名带空格,需要用反引号包裹),直接在mutate里引用列名即可:

# 先确保加载lubridate包
library(lubridate)

new_big_mac <- bigm_df %>% 
  mutate(actual_date = ymd_hms(substr(`Order Time`, 4, 22)))

额外说明

  • 如果列名没有空格(比如OrderTime),可以直接写列名,不用反引号
  • 你原来的paste是多余的,因为substr返回的就是字符向量,直接传给ymd_hms即可
  • 可以用colnames(bigm_df)查看所有列名,确认你要处理的列名称是否正确

内容的提问来源于stack exchange,提问作者Ronald Coe Jr.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:55:58