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

R读取含时间列的数据集时时间被转为十进制数,如何保留HH:mm:ss格式?

R语言保留时间HH:mm:ss格式解决方案

你之前代码出错的核心原因

  • 时间格式占位符写法错误:R中时间格式的占位符需要加前缀%,你使用的h:m:s无法被系统识别,正确写法为%H:%M:%S(%H代表24小时制小时,%M代表分钟,%S代表秒)
  • 函数使用不当:as.Date仅处理日期数据,会自动丢弃时分秒部分,不适合纯时间列的处理
  • 存在语法错误:你最后一行chron调用代码缺少右括号,会直接触发语法报错

适用的解决方法

方法1:用chron包处理(适合纯时间列)

如果你的时间列是从Excel导入的数值型数据(Excel内部以天的小数存储时间,比如0.25代表06:00:00),直接调用chron::times即可:

library(chron)
# 直接传入数值列即可,无需提前转字符
time_col <- times(FeData_18[, 3])

如果导入的是字符串格式的时间,修改format参数即可:

time_col <- times(as.character(FeData_18[, 3]), format = "%H:%M:%S")

方法2:用lubridate包处理(对初学者更友好)

lubridate包的函数参数更简洁,不易出错:

library(lubridate)
# 自动识别常见的时间字符串格式,返回hms类型时间,支持后续时间计算
time_col <- hms(as.character(FeData_18[, 3]))
# 如果仅需要展示为HH:mm:ss格式的字符串,调用format转换即可
time_str <- format(time_col, "%H:%M:%S")

前置优化建议

读入Excel数据时就指定列类型,避免后续格式转换出错,用readxl包实现:

library(readxl)
# 把第三个列的类型指定为date,读入后自动保留时间信息
FeData_18 <- read_excel("你的文件路径.xlsx", col_types = c("其他列1类型", "其他列2类型", "date"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 17:06:01