-1
Tenho duas bases de dados, uma base de cirurgias, com o prontuário do paciente e a data de realização da cirurgia e uma base de movimentações. Movimentações tem uma coluna de prontuário e data de internação do paciente, e data da alta, preciso juntar essas bases, mas como um mesmo prontuário pode ter mais de um valor nas duas bases, não tenho nenhum identificador único, então a estratégia é a seguinte, Tenho que pegar a data de realização da cirurgia na base de cirurgia e com essa data verificar, se essa data está no intervalo da base de movimentações, que é entre data da alta - data de internação do paciente, se a data da cirurgia estiver nesse intervalo, preciso contabilizar o valor da qtde de cirurgias no data frame movimentações(cada linha em cirurgias é uma cirurgia realizada naquela data, alguém pode me ajudar como fazer isso em R? a base de dados tem 400 mil registros. aqui está um exemplo simplificado para um paciente.
dados <- c( 50000, "2016-09-29 13:39:00", "2016-09-30 16:00:00", 50000, "2016-10-06 14:50:00", "2016-10-08 09:00:00", 50000, "2017-08-02 16:27:00", "2017-08-03 11:30:00", 50000, "2017-08-08 08:52:00", "2017-08-09 20:10:00", 50000, "2017-09-05 14:17:00", "2017-09-11 08:20:00", 50000, "2018-05-21 17:46:00", "2018-05-24 17:50:00" )
matriz <- matrix(dados, ncol = 3, byrow = TRUE)
movimentacoes <- as.data.frame(matriz)
colnames(movimentacoes) <- c("Prontuario", "DataInternacao", "HoraAlta")
movimentacoes$Prontuario <- as.integer(movimentacoes$Prontuario) movimentacoes$DataInternacao <- as.POSIXct(movimentacoes$DataInternacao) movimentacoes$HoraAlta <- as.POSIXct(movimentacoes$HoraAlta)
cirurgias = data.frame( prontuario = rep(50000,3), data_realiza = as.Date(c('2017-09-07','2016-09-29','2017-09-11')))