Я впервые пишу здесь, но я слежу и изучаю здесь ответы в течение длительного времени.
У меня есть набор данных с несколькими наблюдениями на пациента и количеством наблюденийварьируется для каждого пациента в зависимости от продолжительности наблюдения.В этом наборе данных у меня есть уникальный идентификатор для пациентов (с именем '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))
Заранее спасибо