楼主: lanhong1993
900 4

[问答] 如何筛选这样的数据? [推广有奖]

  • 1关注
  • 1粉丝

博士生

54%

还不是VIP/贵宾

-

威望
0
论坛币
2701 个
通用积分
3.4261
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
12167 点
帖子
214
精华
0
在线时间
141 小时
注册时间
2016-11-1
最后登录
2024-3-26

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
1542341161(1).png
如图。表格中每一个ID表示每一个病人,num表示用某种药物的次数(第1次,第2次。。。),starttime和endtime分别是这种药物使用的起止时间。随后一列是时间差。我现在想要刷选出针对每一个病人,如果只用过一次药,那么就筛选出第一次。如果用过不止一次,那么筛选出每一次用药的开始时间与上一次用药的结束时间的差值小于一天的所有行。请教大家,这该怎么做(不知道我是否表述清楚[捂脸])?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:一次用药 起止时间 结束时间 开始时间 药物使用

沙发
rainningpoet 发表于 2018-11-16 21:13:48 |只看作者 |坛友微信交流群
some thing like this :

library(dplyr)
df %>%
  arrange(ID, num) %>%
  group_by(ID) %>%
  mutate(diff = endtime - lag(starttime))%>%filter(diff<=24)
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

使用道具

藤椅
lanhong1993 发表于 2018-11-17 10:23:11 |只看作者 |坛友微信交流群
rainningpoet 发表于 2018-11-16 21:13
some thing like this :

library(dplyr)
针对每一个病人ID,只筛选出diff<=24小时的。一旦出现一次diff>24小时,其后的数据一概不要。这该怎么实现呢?

使用道具

板凳
rainningpoet 发表于 2018-11-18 02:23:01 |只看作者 |坛友微信交流群
lanhong1993 发表于 2018-11-17 10:23
针对每一个病人ID,只筛选出diff24小时,其后的数据一概不要。这该怎么实现呢?
some thing like this :
  
  library(dplyr)
df %>%
  arrange(ID, num) %>%
  group_by(ID) %>%
  mutate(diff = endtime - lag(starttime),diff_num=num-lag(num))%>%filter(diff<=24)%>%
  filter(diff_num<=1)

使用道具

报纸
lanhong1993 发表于 2018-11-20 11:49:47 来自手机 |只看作者 |坛友微信交流群
rainningpoet 发表于 2018-11-18 02:23
some thing like this :
  
  library(dplyr)
万分感谢!!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 00:17