全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
921 2
2017-03-28
比如,我有如下数据集:
patients_id    expire_flag
1                 0
1                 0
2                 1     
3                 0
4                 1
4                 1
4                 1  
5                 1
5                 1

如上所示,patients_id表示病人住院次数,1号病人2次住院,2号、3号病人都住院1次,4号病人住院3次,5号病人住院2次。expire_flag代表病人的结局,0代表存活,1代表死亡。1号2号3号病人都没问题,但是4号和5号病人就有问题了,因为病人不可能死亡多次。多次住院的病人应该是最后一次住院才死亡,前几次住院都是存活的。所以我想把数据集整理成如下形式:
patients_id    expire_flag
1                 0
1                 0
2                 1     
3                 0
4                 0
4                 0
4                 1  
5                 0
5                 1

这在R中该怎么做到呢?数据量很大,不可能手动修改。

二维码

扫码加我 拉你入群

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

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

全部回复
2017-3-29 10:08:04
假定数据集为a
(美元符号不能显示)
library(dplyr)
b<-a%>%group_by(patients_id)%>%mutate( n = row_number()-n() )

b$expire_flag<-ifelse(b$n==0,b$expire_flag,0)
b[,c(1,2)]




复制代码
二维码

扫码加我 拉你入群

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

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

2017-3-29 16:47:24
不懂不装懂 发表于 2017-3-29 10:08
假定数据集为a
(美元符号不能显示)
library(dplyr)
太棒啦谢谢
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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