script verificar dias completos em um ano

Boa tarde! Existe algum script que verifique em uma série histórica climática, por exemplo, se em um determinado ano tenha todos os dias completos e insira esses dias faltosos automaticamente? Obrigado Lucas Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP tel: (19) 8160-7068

Opa recentemente eu tive um problema semelhante, e obtive uma solução aqui na lista. Se vc escolher um determinado intervalo, por exemplo dias, é so fazer uma sequencia e introduzir como levels para ver os dias que faltam. Ai vc pode pelo menos ja olhar os dias que faltam e adicionar linhas para eles. Espero que te ajude: #gerando dados de exemplo: set.seed(5) datas<-seq(from =as.Date('1/1/2000',format='%d/%m/%Y'),to=as.Date('1/1/2005',format='%d/%m/%Y'),by='month') especies<-paste("Especie",1:3) dados<-data.frame(Especie=NA,Data=as.Date('1/1/2000',format='%d/%m/%Y')) for(i in 1:30) { dados[i,1]<-sample(especies,1) dados[i,2]<-sample(datas,1) } #note que faltam dias na tabela e isso que queria corrigir: theSeq <- with(dados, sort(format(seq(min(Data), max(Data),by='month'), '%m/%Y'))) with(dados, table(factor(format(Data, '%m/%Y'), levels=theSeq), Especie)) Maiores detalhes nesse post aqui da lista: http://r-br.2285057.n4.nabble.com/R-br-Usando-table-com-datas-td4656194.html Em 22 de outubro de 2012 11:28, <luc.souza@usp.br> escreveu:
Boa tarde! Existe algum script que verifique em uma série histórica climática, por exemplo, se em um determinado ano tenha todos os dias completos e insira esses dias faltosos automaticamente? Obrigado Lucas
Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP tel: (19) 8160-7068
_______________________________________________ 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.
-- Grato Augusto C. A. Ribas Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056

Não entendi []s Leonard de Assis assis <dot> leonard <at> gmail <dot> com Em 22/10/2012 12:28, luc.souza@usp.br escreveu:
Boa tarde! Existe algum script que verifique em uma série histórica climática, por exemplo, se em um determinado ano tenha todos os dias completos e insira esses dias faltosos automaticamente? Obrigado Lucas
Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP tel: (19) 8160-7068
_______________________________________________ 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.

Vou tentar explicar melhor, porque não consegui reproduzir um exemplo: Tenho 1 mês de dados. Porém, dentro desse um mês, o dia 15, por exemplo eu perdi a leitura, ou seja, na tabela, o dia 15 não aparece. Agora imagina isso para 30 anos de dados, com vários dias faltando nos 12 meses. Teria um script para identificar esses dias faltosos e completá-los automaticamente, ou seja, inserir a data (15, por exemplo) na lista. Obrigado Lucas Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP tel: (19) 8160-7068 ----- Mensagem original -----
De: "Leonard de Assis" <assis.leonard@gmail.com> Para: r-br@listas.c3sl.ufpr.br Enviadas: Segunda-feira, 22 de Outubro de 2012 14:46:44 Assunto: Re: [R-br] script verificar dias completos em um ano
Não entendi []s Leonard de Assis assis <dot> leonard <at> gmail <dot> com Em 22/10/2012 12:28, luc.souza@usp.br escreveu:
Boa tarde!
Existe algum script que verifique em uma série histórica climática, por exemplo, se em um determinado ano tenha todos os dias completos e insira esses dias faltosos automaticamente?
Obrigado
Lucas
Lucas F. de Souza
Eng. Agrícola - CONAB
M.Sc. Produção Vegetal - UENF
Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP
tel: (19) 8160-7068
_______________________________________________
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.

Veja bem: #vc tem uma sequencia de datas: #gerando dados de exemplo: set.seed(5) dias.dados<-seq(from =as.Date('1/1/2000',format='%d/%m/%Y'),to=as.Date('1/2/2000',format='%d/%m/%Y'),by='day') str(dias.dados) #mas esta faltando uma data (que faz de conta que vc não sabe que é a quarta) dias.dados<-dias.dados[-4] dias.dados #vc cria uma sequencia, usando dias, do primeiro dia de coleta ao ultimo dia de coleta dias.deveriam.existir<-seq(from =as.Date('1/1/2000',format='%d/%m/%Y'),to=as.Date('1/2/2000',format='%d/%m/%Y'),by='day') #ai vc compara a sequencia que vc criou com a sequencia que vc tem, ou seja se algum dia deveria estar la e nao esta, vc vai descobrir dias.deveriam.existir%in%dias.dados #ai vc pode usar esse teste de logica, ou o contrario dele (operador !) pra saber exatamente o dia que ta faltando dias.deveriam.existir[!dias.deveriam.existir%in%dias.dados] #Essa é a idea la em cima, não é mais ou menos isso? Ai vc inclue esse dado la, agora que vc sabe o dia que ta faltando #so gerar a sequencia de dias dos 30 anos ao invez do mes do exemplo aqui #não é mais ou menos isso o problema? Em 22 de outubro de 2012 14:01, <luc.souza@usp.br> escreveu:
Vou tentar explicar melhor, porque não consegui reproduzir um exemplo: Tenho 1 mês de dados. Porém, dentro desse um mês, o dia 15, por exemplo eu perdi a leitura, ou seja, na tabela, o dia 15 não aparece. Agora imagina isso para 30 anos de dados, com vários dias faltando nos 12 meses. Teria um script para identificar esses dias faltosos e completá-los automaticamente, ou seja, inserir a data (15, por exemplo) na lista.
Obrigado Lucas
Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP tel: (19) 8160-7068
------------------------------
*De: *"Leonard de Assis" <assis.leonard@gmail.com> *Para: *r-br@listas.c3sl.ufpr.br *Enviadas: *Segunda-feira, 22 de Outubro de 2012 14:46:44 *Assunto: *Re: [R-br] script verificar dias completos em um ano
Não entendi
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 22/10/2012 12:28, luc.souza@usp.br escreveu:
Boa tarde! Existe algum script que verifique em uma série histórica climática, por exemplo, se em um determinado ano tenha todos os dias completos e insira esses dias faltosos automaticamente? Obrigado Lucas
Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP tel: (19) 8160-7068
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://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.
-- Grato Augusto C. A. Ribas Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056

Muito obrigado Walmes e Augusto. Perfeito o que vocês sugeriram. Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP tel: (19) 8160-7068 ----- Mensagem original -----
De: "Augusto Ribas" <ribas.aca@gmail.com> Para: r-br@listas.c3sl.ufpr.br Enviadas: Segunda-feira, 22 de Outubro de 2012 15:12:19 Assunto: Re: [R-br] script verificar dias completos em um ano
Veja bem:
#vc tem uma sequencia de datas: #gerando dados de exemplo: set.seed(5) dias.dados<-seq(from =as.Date('1/1/2000',format='%d/%m/%Y'),to=as.Date('1/2/2000',format='%d/%m/%Y'),by='day') str(dias.dados)
#mas esta faltando uma data (que faz de conta que vc não sabe que é a quarta) dias.dados<-dias.dados[-4] dias.dados
#vc cria uma sequencia, usando dias, do primeiro dia de coleta ao ultimo dia de coleta dias.deveriam.existir<-seq(from =as.Date('1/1/2000',format='%d/%m/%Y'),to=as.Date('1/2/2000',format='%d/%m/%Y'),by='day')
#ai vc compara a sequencia que vc criou com a sequencia que vc tem, ou seja se algum dia deveria estar la e nao esta, vc vai descobrir dias.deveriam.existir%in%dias.dados
#ai vc pode usar esse teste de logica, ou o contrario dele (operador !) pra saber exatamente o dia que ta faltando dias.deveriam.existir[!dias.deveriam.existir%in%dias.dados]
#Essa é a idea la em cima, não é mais ou menos isso? Ai vc inclue esse dado la, agora que vc sabe o dia que ta faltando #so gerar a sequencia de dias dos 30 anos ao invez do mes do exemplo aqui #não é mais ou menos isso o problema?
Em 22 de outubro de 2012 14:01, < luc.souza@usp.br > escreveu:
Vou tentar explicar melhor, porque não consegui reproduzir um exemplo:
Tenho 1 mês de dados. Porém, dentro desse um mês, o dia 15, por exemplo eu perdi a leitura, ou seja, na tabela, o dia 15 não aparece.
Agora imagina isso para 30 anos de dados, com vários dias faltando nos 12 meses.
Teria um script para identificar esses dias faltosos e completá-los automaticamente, ou seja, inserir a data (15, por exemplo) na lista.
Obrigado
Lucas
Lucas F. de Souza
Eng. Agrícola - CONAB
M.Sc. Produção Vegetal - UENF
Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP
tel: (19) 8160-7068
De: "Leonard de Assis" < assis.leonard@gmail.com >
Para: r-br@listas.c3sl.ufpr.br
Enviadas: Segunda-feira, 22 de Outubro de 2012 14:46:44
Assunto: Re: [R-br] script verificar dias completos em um ano
Não entendi
[]s
Leonard de Assis
assis <dot> leonard <at> gmail <dot> com Em 22/10/2012 12:28, luc.souza@usp.br escreveu:
Boa tarde!
Existe algum script que verifique em uma série histórica climática, por exemplo, se em um determinado ano tenha todos os dias completos e insira esses dias faltosos automaticamente?
Obrigado
Lucas
Lucas F. de Souza
Eng. Agrícola - CONAB
M.Sc. Produção Vegetal - UENF
Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP
tel: (19) 8160-7068
_______________________________________________
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
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
Leia o guia de postagem ( http://www.leg.ufpr.br/r-br-guia ) e forneça código mínimo reproduzível.
--
Grato Augusto C. A. Ribas
Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056
_______________________________________________ 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.

Se for isto, resolve com merge e o próprio seq []s Leonard de Assis assis <dot> leonard <at> gmail <dot> com Em 22/10/2012 15:12, Augusto Ribas escreveu:
Veja bem:
#vc tem uma sequencia de datas: #gerando dados de exemplo: set.seed(5) dias.dados<-seq(from =as.Date('1/1/2000',format='%d/%m/%Y'),to=as.Date('1/2/2000',format='%d/%m/%Y'),by='day') str(dias.dados)
#mas esta faltando uma data (que faz de conta que vc não sabe que é a quarta) dias.dados<-dias.dados[-4] dias.dados
#vc cria uma sequencia, usando dias, do primeiro dia de coleta ao ultimo dia de coleta dias.deveriam.existir<-seq(from =as.Date('1/1/2000',format='%d/%m/%Y'),to=as.Date('1/2/2000',format='%d/%m/%Y'),by='day')
#ai vc compara a sequencia que vc criou com a sequencia que vc tem, ou seja se algum dia deveria estar la e nao esta, vc vai descobrir dias.deveriam.existir%in%dias.dados
#ai vc pode usar esse teste de logica, ou o contrario dele (operador !) pra saber exatamente o dia que ta faltando dias.deveriam.existir[!dias.deveriam.existir%in%dias.dados]
#Essa é a idea la em cima, não é mais ou menos isso? Ai vc inclue esse dado la, agora que vc sabe o dia que ta faltando #so gerar a sequencia de dias dos 30 anos ao invez do mes do exemplo aqui #não é mais ou menos isso o problema?
Em 22 de outubro de 2012 14:01, <luc.souza@usp.br <mailto:luc.souza@usp.br>> escreveu:
Vou tentar explicar melhor, porque não consegui reproduzir um exemplo: Tenho 1 mês de dados. Porém, dentro desse um mês, o dia 15, por exemplo eu perdi a leitura, ou seja, na tabela, o dia 15 não aparece. Agora imagina isso para 30 anos de dados, com vários dias faltando nos 12 meses. Teria um script para identificar esses dias faltosos e completá-los automaticamente, ou seja, inserir a data (15, por exemplo) na lista.
Obrigado Lucas
Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP tel: (19) 8160-7068
------------------------------------------------------------------------
*De: *"Leonard de Assis" <assis.leonard@gmail.com <mailto:assis.leonard@gmail.com>> *Para: *r-br@listas.c3sl.ufpr.br <mailto:r-br@listas.c3sl.ufpr.br> *Enviadas: *Segunda-feira, 22 de Outubro de 2012 14:46:44 *Assunto: *Re: [R-br] script verificar dias completos em um ano
Não entendi
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 22/10/2012 12:28, luc.souza@usp.br <mailto:luc.souza@usp.br> escreveu:
Boa tarde! Existe algum script que verifique em uma série histórica climática, por exemplo, se em um determinado ano tenha todos os dias completos e insira esses dias faltosos automaticamente? Obrigado Lucas
Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP tel: (19) 8160-7068
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto: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 <mailto: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 <mailto: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.
-- Grato Augusto C. A. Ribas
Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056
_______________________________________________ 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.

Gere uma sequencias começando no dia/mes/ano inicial até o final e compare com a sequencia que é os seus dados, que vc vai ser se ta faltando algum dia, mes ano, depende do o que vc quer ver. a ideia é essa para aquela solução. #dias seq(from =as.Date('3/7/2000',format='%d/%m/%Y'),to=as.Date('12/8/2001',format='%d/%m/%Y'),by='day') #meses seq(from =as.Date('3/7/2000',format='%d/%m/%Y'),to=as.Date('12/8/2001',format='%d/%m/%Y'),by='month') #anos seq(from =as.Date('3/7/2000',format='%d/%m/%Y'),to=as.Date('12/8/2001',format='%d/%m/%Y'),by='year') Em 22 de outubro de 2012 13:46, Leonard de Assis <assis.leonard@gmail.com>escreveu:
Não entendi
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 22/10/2012 12:28, luc.souza@usp.br escreveu:
Boa tarde! Existe algum script que verifique em uma série histórica climática, por exemplo, se em um determinado ano tenha todos os dias completos e insira esses dias faltosos automaticamente? Obrigado Lucas
Lucas F. de Souza Eng. Agrícola - CONAB M.Sc. Produção Vegetal - UENF Doutorando Engenharia de Sistemas Agrícolas - ESALQ/USP tel: (19) 8160-7068
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://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.
-- Grato Augusto C. A. Ribas Site Pessoal: http://augustoribas.heliohost.org Lattes: http://lattes.cnpq.br/7355685961127056

Gere a sequencia completa e faça um "merge total" com os dados que você tem, algo como parcial <- data.frame(d=as.Date(c("2011-02-02","2011-02-05","2011-02-07")), y=0) complet <- data.frame(d=seq(min(parcial$d), max(parcial$d), by="day"), y=NA) ?merge merge(complet, parcial, by="d", all=TRUE) À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
participantes (4)
-
Augusto Ribas
-
Leonard de Assis
-
luc.souza@usp.br
-
Walmes Zeviani