首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中找到彼此在一定时间范围内的观测值

如何在R中找到彼此在一定时间范围内的观测值
EN

Stack Overflow用户
提问于 2019-07-31 22:31:03
回答 2查看 199关注 0票数 1

我有一个包含ID、日期、生命天数和药物变量的数据集。每个ID都有多个观察值,表明某种药物的不同给药方式。我想找到彼此相隔365天内服用的独特药物。数据帧示例如下:

代码语言:javascript
复制
ID    date          dayoflife    meds
1     2003-11-24    16361        lasiks
1     2003-11-24    16361        vigab
1     2004-01-09    16407        lacos
1     2013-11-25    20015        pheno
1     2013-11-26    20016        vigab
1     2013-11-26    20016        lasiks
2     2008-06-05    24133        pheno
2     2008-04-07    24074        vigab
3     2014-11-25    8458         pheno
3     2014-12-22    8485         pheno

我希望结果是:

代码语言:javascript
复制
ID    N
1     3
2     2
3     1

这表明个体1在365天内最多服用3种不同类型的药物。我不确定是否最好使用days of life或date来获得这个预期的outcome.Any帮助

EN

回答 2

Stack Overflow用户

发布于 2019-07-31 22:36:51

一种选择是将'date‘转换为Date类,按'ID’分组,获取'date‘的absdiff错误和列的lag,检查它是否大于365,使用cumsum创建分组索引,获取summarise中'meds’的不同元素的数量

代码语言:javascript
复制
library(dplyr)
df1 %>% 
   mutate(date = as.Date(date)) %>%
   group_by(ID) %>% 
   mutate(diffd = abs(as.numeric(difftime(date, lag(date, default = first(date)),
               units = 'days')))) %>%
   group_by(grp = cumsum(diffd > 365), add = TRUE) %>%
   summarise(N = n_distinct(meds)) %>%
   group_by(ID) %>%
   summarise(N = max(N))
# A tibble: 3 x 2
#     ID     N
#  <int> <int>
#1     1     2
#2     2     2
#3     3     1
票数 1
EN

Stack Overflow用户

发布于 2019-07-31 22:37:51

您可以尝试:

代码语言:javascript
复制
library(dplyr)

df %>%
  group_by(ID) %>%
  mutate(date = as.Date(date),
         lag_date = abs(date - lag(date)) <= 365,
         lead_date = abs(date - lead(date)) <= 365) %>%
  mutate_at(vars(lag_date, lead_date), ~ ifelse(., ., NA)) %>%
  filter(coalesce(lag_date, lead_date)) %>%
  summarise(N = n_distinct(meds))

输出:

代码语言:javascript
复制
# A tibble: 3 x 2
     ID     N
  <int> <int>
1     1     2
2     2     2
3     3     1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57293181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档