全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1218 2
2020-03-11
请教,我的数据如下,数据集包含的是对每个人的体重的监测,ID是病人的编号,第二列和第三列是起止时间,第四列是体重。我现在想做的是,对于每个人(每个ID),计算出他在监测时间内的体重的变化速度,形成一个新的数据集。比如,我我要算200003这个人在2/8/2199 19:15:00至8/8/2199 19:09:18内体重的增速,即(79.7-77.5)/时间差。这个怎么做?感觉要用到循环,却不知如何下手,数据量比较庞大。

微信图片_20200311123551.png


二维码

扫码加我 拉你入群

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

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

全部回复
2020-3-11 20:34:45
df <- data.frame(id=rep(letters[1:2],each = 3), s=c(1:3,1:3),
                 e=c(2:4,2:4),v=c(11,20,25,9,13,28))
df
library(dplyr)
df%>%group_by(id)%>%
  transmute(s=first(s),
            e=last(e),
            v1=first(v),
            v2=last(v))%>%
distinct()%>%
  mutate(zs=(v2-v1)/(e-s))
二维码

扫码加我 拉你入群

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

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

2020-3-11 21:21:49
不懂不装懂 发表于 2020-3-11 20:34
df %group_by(id)%>%
  transmute(s=first(s),
            e=last(e),
太棒啦,万分感谢
二维码

扫码加我 拉你入群

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

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

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群