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

Excel计算跨天时长显示1/1/1900,导入R后超24小时值为NA如何解决?

解决跨天时长Excel转R后显示NA的问题

Excel端预处理(关键步骤)

Excel里的跨天时长本质是日期数值(1代表24小时),所以会显示成1/1/1900 6:13:00 AM这类格式。要保留37:30:35的文本格式,按以下操作:

  • 用公式把数值型时长转成纯文本:假设原时长在A列,在空白列输入=TEXT(A1, "[h]:mm:ss"),下拉填充,得到的就是37:30:35这样的文本字符串。
  • 复制公式生成的结果,右键选择「选择性粘贴」→「数值」,把这列转成纯文本格式,替换原时长列或者单独保留。

R端导入与处理

  • 导入数据时,强制指定ride_length列为字符型,避免R自动解析成日期时间导致NA:
    library(readxl)
    df <- read_excel("你的文件路径.xlsx", col_types = list(ride_length = "text"))
    
  • 如果需要对时长做计算,用lubridate包转成可运算的时长对象:
    library(lubridate)
    df$ride_length_duration <- hms(df$ride_length)
    
    转换后得到的是Duration类型,显示为37H 30M 35S,支持加减、统计等运算。

问题根源

Excel中,<24小时的时长是小数(比如12小时=0.5),跨天时长是整数+小数(比如30小时=1+0.25),R默认会把这类数值尝试解析为日期时间,但小数部分无法对应合法日期,混合后就会出现大量NA。通过转成文本再导入,就能完美保留原始时长格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:27:30