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

如何通过两个POSIXct/POSIXt类时间变量计算分钟级住院时长

因为你这两列都是POSIXct/POSIXt类型的时间格式,可以直接用R内置的difftime()函数计算分钟差值,再转成数值型即可。

基础R实现

直接新增列的代码如下:

data$hospital_stay_min <- as.numeric(difftime(data$`Date of Discharge`, data$`Date of Surgery`, units = "mins"))

参数说明:

  • difftime()第一个参数填结束时间(出院日期),第二个参数填开始时间(手术日期)
  • units = "mins"指定计算差值的单位为分钟
  • as.numeric()将返回的difftime类对象转换为纯数值型,去除内置的单位属性

Tidyverse 实现(dplyr)

如果你习惯用tidyverse语法,可以用mutate()处理:

library(dplyr)

data <- data %>%
  mutate(
    hospital_stay_min = as.numeric(difftime(`Date of Discharge`, `Date of Surgery`, units = "mins"))
  )

注意事项

如果要避免出现负值(比如存在部分记录出院时间早于手术时间的异常数据),可以在difftime()外包裹abs()取绝对值:

as.numeric(abs(difftime(data$`Date of Discharge`, data$`Date of Surgery`, units = "mins")))

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

相关产品推荐
方舟 Agent Plan

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

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