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

如何在R语言中将PT格式时长数据转换为分钟数值

R语言实现PT格式时长转分钟操作方法

你提供的PTxHyM是标准ISO 8601时长格式,可通过以下两种方案实现转分钟的需求:

方案1:使用lubridate包(推荐,兼容性强)

lubridate是R生态中专门处理时间日期相关操作的常用包,可直接识别该格式:

# 首次使用需先安装包,已安装可跳过此行
install.packages("lubridate")

# 加载包
library(lubridate)

# 你的输入数据
input_dur <- c("PT8H10M", "PT20M")

# 转换为分钟数值
res <- as.duration(input_dur) / dminutes(1)

# 查看结果
print(res)

运行后输出结果即为:490 20

方案2:基础R实现(无需安装第三方包)

通过正则匹配提取小时、分钟数值计算:

dur2min <- function(dur_vec) {
  # 提取小时数,无小时的项默认赋值0
  h <- as.integer(sub("^PT(?:(\\d+)H)?.*", "\\1", dur_vec, perl = TRUE))
  h[is.na(h)] <- 0
  # 提取分钟数
  m <- as.integer(sub(".*?(\\d+)M$", "\\1", dur_vec, perl = TRUE))
  return(h * 60 + m)
}

# 测试
input_dur <- c("PT8H10M", "PT20M")
res <- dur2min(input_dur)
print(res)

两种方案均适配只有小时、只有分钟、同时有小时分钟的PT格式时长转换需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:27:08