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

在R中如何将character类型时间列转换为指定格式integer类型

R语言实现Time列格式转换

你可以根据使用场景选择以下任意一种方案:

方案1:基础R实现(无需加载额外包)

# 构造示例数据(你已经有df1的话可以跳过这一步)
df1 <- data.frame(
  ID = 1:5,
  Time = c("16:00:00", "14:30:00", "9:23:00", "10:00:00", "23:59:00")
)

# 核心转换逻辑
df1$Time <- as.integer(gsub(":", "", df1$Time)) %/% 100

逻辑说明:先用gsub移除时间字符串里的所有冒号,转为整数后整除100,直接去掉末尾的秒数部分,得到目标格式。

方案2:tidyverse生态实现

如果你的项目已经在使用tidyverse系列包,可以用以下写法:

library(tidyverse)

df1 <- df1 %>%
  mutate(Time = str_remove_all(Time, ":") %>% as.integer() %>% `%/%`(100))

方案3:时间类型解析实现(兼容性更强)

如果你的数据存在时间格式不统一的风险,建议先解析为标准时间类型再处理,避免字符串处理出错:

library(lubridate)

# 先解析为时分秒类型,再提取小时、分钟拼接为目标整数
df1$Time <- as.integer(hour(hms(df1$Time)) * 100 + minute(hms(df1$Time)))

三种方案运行后都可以得到你需要的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:45:05