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

R语言mutate+across批量转时间列报错,单列处理正常求解决

问题解决建议

错误原因

你在批量处理时调用as.POSIXct(.)未指定format参数,而单列处理时明确传入了format="%d.%m.%Y %H:%M:%S"——这是解析失败的核心原因。as.POSIXct默认依赖系统本地格式解析字符串,当你的日期格式与默认格式不匹配时,就会触发as.POSIXlt.character错误。此外,你原代码中多余的format()调用会将POSIXct类型转回字符串,与你“转换为日期时间类型”的需求矛盾。

修正后的代码

情况1:直接替换原列

若需将原有“ Time”结尾列直接转为POSIXct类型:

M601_M_multi.2 <- M601_M_multi %>% 
  mutate(across(ends_with(' Time'), ~as.POSIXct(., format = "%d.%m.%Y %H:%M:%S")))

情况2:保留原列,生成带.used后缀的新列

若要保留原列,同时生成转换后的新列(与你最初的批量处理需求一致):

M601_M_multi.2 <- M601_M_multi %>% 
  mutate(
    across(ends_with(' Time'), ~as.POSIXct(., format = "%d.%m.%Y %H:%M:%S")),
    .names = "{.col}.used"
  )

补充:如果你的实际需求是生成格式化后的日期字符串而非POSIXct类型,才需要保留format(),此时代码应为:

M601_M_multi.2 <- M601_M_multi %>% 
  mutate(
    across(ends_with(' Time'), ~format(as.POSIXct(., format = "%d.%m.%Y %H:%M:%S"), "%d.%m.%Y %H:%M:%S")),
    .names = "{.col}.used"
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 00:52:41