У меня есть один data.frame loc_teste2
со столбцами: Ptt
(у меня 36 разных Ptt's) и Date
, вот так:
Ptt Date
88734 05:39:18 23-Oct-2016
88734 06:53:13 23-Oct-2016
88734 08:32:18 24-Oct-2016
88734 06:45:27 19-Dez-2016
88734 12:30:43 20-Dez-2016
129041 02:45:35 18-Nov-2016
129041 04:55:24 19-Nov-2016
129041 06:45:30 19-Nov-2016
129041 07:10:32 20-Nov-2016
129041 03:43:54 10-Jan-2017
120941 14:54:39 11-Jan-2017
...
Итак, я разбил столбец Date
на другой столбец Days
loc_teste2$Date<- as.character(loc_teste2$Date)
loc_teste2$Days <- sapply(strsplit(loc_teste2$Date, split=' ', fixed=TRUE), function(x) (x[2]))
loc_teste2$Days <- as.POSIXct(loc_teste2$Days, format = "%d-%b-%Y",tz = "GMT",usetz = TRUE)
loc_teste2$Date <- as.POSIXct(loc_teste2$Date, format = "%H:%M:%S %d-%b-%Y",tz = "GMT",usetz = TRUE)
Возвращает:
Ptt Date Days
88734 2016-10-23 05:39:18 2016-10-23
88734 2016-10-23 06:53:13 2016-10-23
88734 2016-10-23 08:32:18 2016-10-24
88734 2016-12-19 06:45:27 2016-12-19
88734 2016-12-20 12:30:43 2016-12-20
129041 2016-10-23 02:45:35 2016-10-18
129041 2016-10-23 04:55:24 2016-11-19
129041 2016-10-23 06:45:30 2016-11-19
129041 2016-10-23 07:10:32 2016-11-20
129041 2017-01-10 03:43:54 2017-01-10
120941 2017-01-11 14:54:39 2017-01-11
...
Затем я хочу создать новый столбец Mig
, добавляющий 40 дней на основе первой даты для каждого Ptt
в столбце Days
, где:
Если дата до 40 дней с первой даты Ptt
, возвращается 1
Если дата более 40 дней от первой даты Ptt
, возвращается 2
, например:
Ptt Date Days Mig
88734 2016-10-23 05:39:18 2016-10-23 1 #based in this date (the first date for this Ptt)
88734 2016-10-23 06:53:13 2016-10-23 1
88734 2016-10-23 08:32:18 2016-10-24 1
88734 2016-12-19 06:45:27 2016-12-19 2
88734 2016-12-20 12:30:43 2016-12-20 2
129041 2016-10-23 02:45:35 2016-10-18 1 #based in this date (the first date for this Ptt)
129041 2016-10-23 04:55:24 2016-11-19 1
129041 2016-10-23 06:45:30 2016-11-19 1
129041 2016-10-23 07:10:32 2016-11-20 1
129041 2017-01-10 03:43:54 2017-01-10 2
120941 2017-01-11 14:54:39 2017-01-11 2
...
У кого-нибудь есть идеи, как это сделать?
Ps: лучше создать столбец Mig
с датами + 40 дней, а затем создать еще один столбец Mig2
с 1 или 2?