这是我第一次在这里写书,但是很长一段时间我一直在关注并从中学习答案。
我有一个数据集,每个病人有多个观察值,每个观察值的数量根据随访时间而变化。在这个数据集中,我有一个用于患者的唯一标识符(称为“ id”),以及一列以这些测量的日期和时间为POSIXct的列(名为“ complete_date”,这些测量以不同的间隔进行,但是非常频繁)。喜欢:
id<-c(1,1,1,2,2,3,3,3,3,3,5,5,5)
complete_date<-c("2017-08-10 12:53:01", "2017-08-10 12:58:06", "2017-08-10 13:08:08", "2017-11-12 19:48:58", "2017-11-12 19:49:07", "2017-03-01 01:01:05", "2017-03-01 01:08:21", "2017-03-01 01:10:17", "2017-03-01 01:17:57", "2017-03-01 01:19:33", "2017-12-12 17:41:42", "2017-12-12 17:49:57", "2017-12-12 17:55:56")
df1<-as.data.frame(cbind(id, complete_date))
df1$complete_date<-as.POSIXct(df1$complete_date)
我试图每10分钟减少一次观察,但是我有两个疑问:
1)如何在每个患者中使用“剪切”功能?我希望该功能在每次观察来自与先前患者不同的患者时开始新的切割。目前,我正在使用以下公式,可以吗?
df1<-df1 %>%
group_by(id) %>%
mutate(cut_10 = cut(complete_date, breaks="10 min"))
2)如何将所有患者创建的这个新变量('cut_10')转换为相似水平的因子?就像,每位患者的前10分钟为“ 1”,第二为“ 2”,第三为“ 3”,依此类推。喜欢:
id<-c(1,1,1,2,2,3,3,3,3,3,5,5,5)
complete_date<-c("2017-08-10 12:53:01", "2017-08-10 12:58:06", "2017-08-10 13:08:08", "2017-11-12 19:48:58", "2017-11-12 19:49:07", "2017-03-01 01:01:05", "2017-03-01 01:08:21", "2017-03-01 01:10:17", "2017-03-01 01:17:57", "2017-03-01 01:19:33", "2017-12-12 17:41:42", "2017-12-12 17:49:57", "2017-12-12 17:55:56")
cut_10<-c("2017-08-10 12:53:00", "2017-08-10 12:53:00", "2017-08-10 13:03:00", "2017-11-12 19:48:00", "2017-11-12 19:48:00", "2017-03-01 01:01:00", "2017-03-01 01:01:00", "2017-03-01 01:01:00", "2017-03-01 01:11:00", "2017-03-01 01:11:00", "2017-12-12 17:41:00", "2017-12-12 17:41:00", "2017-12-12 17:51:00")
factor_cut<-c(1,1,2,1,1,1,1,1,2,2,1,1,2)
df2<-as.data.frame(cbind(id, complete_date, cut_10, factor_cut))
预先感谢