Сокращение сроков и создание фиксированного фактора - PullRequest
0 голосов
/ 04 декабря 2018

Я впервые пишу здесь, но я слежу и изучаю здесь ответы в течение длительного времени.

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

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...