[R-br] RES: Operação entre datas

Amikobh amikobh em gmail.com
Quinta Junho 23 23:42:34 BRT 2016


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) :
   '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

Existem linhas do banco$NASCIMENTO  vazias.
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 <mailto:r-br em listas.c3sl.ufpr.br>
>> *Enviado:*quinta-feira, 16 de junho de 2016 23:23
>> *Para: *r-br em listas.c3sl.ufpr.br <mailto:r-br em 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ções
>>
>> Em 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 list
>>
>>     R-br em listas.c3sl.ufpr.br <mailto:R-br em 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 em 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 em 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.

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160623/74709cf4/attachment.html>


Mais detalhes sobre a lista de discussão R-br