Ei! Eis os scripts e a saída de erro:
>if(!require(eeptools)){install.packages("eeptools"); require(eeptools)}
>banco$NASCIMENTO = as.Date(banco$NASCIMENTO, "%d/%m/%y")
>banco$DATA_ATO = as.Date(banco$DATA_ATO, "%d/%m/%y")
## calcula o intervalo em anos
>banco$IDADE2 = floor(age_calc(banco$NASCIMENTO, banco$DATA_ATO, units = "years"))
Error in seq.int(r1$year, to$year, by) :
Existem linhas do banco$NASCIMENTO vazias.
'from' cannot be NA, NaN or infinite
Além disso: Warning message:
In if (enddate < dob) { :
a condição tem comprimento > 1 e somente o primeiro elemento será usado
Quando uso os scripts sugeridos pelo Eder dá certo sendo que aparece NA em banco$idade2 na correspondente que contém NA em banco$NASCIMENTO...
Muito obrigado.
Em 22-06-2016 13:55, salah via R-br escreveu:
Olá Amiko
É necessário que você disponibilize um trecho do seu script ou pelo menos a saída de erro
Executei o meu script e do Eder e ambos obtiveram exito
Na conversão de datas usando a função <as.Date()> o padrão de conversão tem que ser exatamente com o formato da data se não retorna NA
exemplo:
as.Date(c("26/11/97"), "%d/%m/%y")## padrão da data como "dia/mes/ano"
## [1] "1997-11-26"
as.Date(c("26/11/97"), "%d-%m-%y")## padrão da data como "dia-mes-ano"
## NA
usando o lubridate() como sugeriu o Eder
library(lubridate)
dmy("26/11/97")## não é necessário um padrão, mas tem que estar como dia mes e ano
## [1] "1997-11-26"
dmy("26-11-97")
##[1] "1997-11-26
dmy("11/26/97")
## NA
saudações
Em 22/06/2016 09:28, Amiko Bh via R-br escreveu:
Prezado,
Quando executo o script para calcular o período retorna erro por conta dos NA’S.
Obrigado pela ajuda.
Enviado do meu telefone Windows 10
De: salah via R-br
Enviado:quinta-feira, 16 de junho de 2016 23:23
Para: r-br@listas.c3sl.ufpr.br
Assunto: Re: [R-br] Operação entre datas
segue sugestão
library(eeptools)
DADOS = data.frame(
NASCIMENTO = c("26/11/97", "20/03/99", "14/05/99","06/05/98", "03/01/00", "19/05/97", "01/02/01", "28/11/97", "10/02/00"),
DATA_FATO = c("23/02/15", "28/03/15", "08/04/15", "08/04/15", "08/04/15", "08/05/15", "17/05/15", "03/06/15", "03/06/15"))
## converter para Date
DADOS$NASCIMENTO = as.Date(DADOS$NASCIMENTO, "%d/%m/%y")
DADOS$DATA_FATO = as.Date(DADOS$DATA_FATO, "%d/%m/%y")
## calcula o intervalo em anos
DADOS$IDADE = floor(age_calc(DADOS$NASCIMENTO, DADOS$DATA_FATO, units = "years"))
DADOS
saudaçõesEm 16/06/2016 14:45, Amikobh via R-br escreveu:
Prezados,
Desde já, obrigado pela ajuda.
Tendo duas variáveis com datas referentes a determinada pessoa:
NASCIMENTO
DATA_FATO
26/11/97
23/02/15
20/03/99
28/03/15
14/05/99
08/04/15
06/05/98
08/04/15
03/01/00
08/04/15
19/05/97
08/05/15
01/02/01
17/05/15
28/11/97
03/06/15
10/02/00
03/06/15
Como procedo para criar mais uma coluna que calcula a idade no dia da ocorrência de determinado fato? De tal forma que obtenha:
NASCIMENTO
DATA_FATO
IDADE
26/11/97
23/02/15
17
20/03/99
28/03/15
16
14/05/99
08/04/15
15
06/05/98
08/04/15
16
03/01/00
08/04/15
15
19/05/97
08/05/15
17
01/02/01
17/05/15
14
28/11/97
03/06/15
17
10/02/00
03/06/15
15
Valeu, gente!
_______________________________________________R-br mailing listR-br@listas.c3sl.ufpr.brhttps://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-brLeia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.