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

DataFrame条件连接:计算护理连续体一年内累计治疗时长

计算护理连续体一年内累计治疗时长

问题背景

现有两个DataFrame:

  • Persons:存储多个护理连续体的基础信息,包含护理连续体ID、起始日期等字段
  • Treatments:记录对应护理连续体的治疗信息,包含治疗日期、时长等字段

需要为每个护理连续体,计算从其起始日开始365天内的累计治疗总时长。

数据示例

Persons DataFrame

library(tidyverse)
library(lubridate)

persons = read.csv("https://www.dropbox.com/s/5ziygvwnbvq73fc/persons.csv?dl=1") %>% 
  mutate(continuum_start = ymd(continuum_start)) %>% 
  select(-1)
  
persons 

Persons DataFrame示例

Treatments DataFrame

treatments = read.csv("https://www.dropbox.com/s/0nfokiheo43lwjy/treatments.csv?dl=1") %>% 
  mutate(treatment_date = ymd(treatment_date)) %>% 
  select(-1)

treatments

Treatments DataFrame示例

解决方案

通过tidyverse和lubridate工具包实现,步骤如下:

  1. 关联两个DataFrame的护理连续体ID
  2. 筛选出治疗日期在护理连续体起始日至起始日+365天范围内的记录
  3. 按护理连续体分组,对符合条件的治疗时长求和

代码实现:

# 关联数据并计算累计时长
result = persons %>%
  left_join(treatments, by = "continuum_id") %>%
  # 筛选365天范围内的治疗记录
  filter(treatment_date >= continuum_start,
         treatment_date <= continuum_start + days(365)) %>%
  # 按护理连续体分组求和
  group_by(continuum_id, continuum_start) %>%
  summarise(total_treatment_duration = sum(treatment_duration, na.rm = TRUE)) %>%
  ungroup()

result

期望结果

最终结果包含护理连续体ID、起始日期,以及该连续体起始后一年内的累计治疗时长,示例如下:
期望结果示例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:25:10