Ola Benilton, funcionou perfeitamente.<br>Eu so não entendi perfeitamente a função myFormat que vc fez.<br>Ela pega as datas e troca - por /.<br>PQ o ymd transforma os dados em data pro pacote lubridate correto?<br>Mas ai vc usa o myFormat ali no comando factor. Fiquei perdido no que esta acontecendo.<br>
Porque não funciona somente fazer a seq() com as datas minima e maxima por mes e usar no levels.<br>Mas desde ja agradeço a sua atenção :)<br><br><br><div class="gmail_quote">Em 13 de setembro de 2012 21:31, Benilton Carvalho <span dir="ltr"><<a href="mailto:beniltoncarvalho@gmail.com" target="_blank">beniltoncarvalho@gmail.com</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">library(lubridate)<br>
myFormat <- function(datas)<br>
    paste(sprintf('%02d', month(datas)),<br>
                  sprintf('%04d', year(datas)),<br>
                  sep='/')<br>
dt <- ymd(format(dados$Data, '%Y-%m-%d'))<br>
theSeq <- seq(min(dt), max(dt), by='month')<br>
periodosFac <- factor(myFormat(dt), levels=sort(myFormat(theSeq)))<br>
table(periodosFac, dados$Especie)<br>
<br>
<br>
2012/9/14 Augusto Ribas <<a href="mailto:ribas.aca@gmail.com">ribas.aca@gmail.com</a>>:<br>
<div><div class="h5">> Boa noite a todos. Estou com uma duvida aqui sobre como fazer tabelas com<br>
> dados de tempo.<br>
> Bom eu tenho um dataframe que  é uma lista de bixos atropelados na estrada.<br>
> Cada linha é um registro, e tem a especie do bixinho que morreu e a data e<br>
> outras coisas.<br>
> Mais ou menos assim:<br>
><br>
>> head(dados)<br>
>     Especie       Data<br>
> 1 Especie 1 2003-06-01<br>
> 2 Especie 3 2001-06-01<br>
> 3 Especie 1 2003-07-01<br>
> 4 Especie 2 2004-02-01<br>
> 5 Especie 3 2000-07-01<br>
> 6 Especie 1 2002-06-01<br>
><br>
> Então tem varias especies, e varios anos de coleta.<br>
> Eu gostaria de fazer uma tabela pra saber quantos individuos de cada especie<br>
> morreram por mes, separando os anos.<br>
> Eu fiz isso usando o comando table(), porem tem alguns meses que não teve<br>
> registro para nenhuma especie.<br>
> Dai a minha tabela fica incompleta.<br>
> Eu gostaria que do periodo inicial dos registros até  o final, tivesse todos<br>
> os meses, mesmo que aparecendo zero para todas as especies.<br>
> Segue um CMR pra exemplificar melhor o exemplo<br>
><br>
> #gerando dados de exemplo:<br>
> set.seed(5)<br>
> datas<-seq(from<br>
> =as.Date('1/1/2000',format='%d/%m/%Y'),to=as.Date('1/1/2005',format='%d/%m/%Y'),by='month')<br>
> especies<-paste("Especie",1:3)<br>
><br>
> dados<-data.frame(Especie=NA,Data=as.Date('1/1/2000',format='%d/%m/%Y'))<br>
> for(i in 1:30) {<br>
>   dados[i,1]<-sample(especies,1)<br>
>   dados[i,2]<-sample(datas,1)<br>
>   }<br>
><br>
> head(dados)<br>
><br>
> #Fazendo a tabela<br>
> table(format(dados$Data,'%m/%Y'),dados$Especie)<br>
><br>
><br>
>> table(format(dados$Data,'%m/%Y'),dados$Especie)<br>
><br>
>           Especie 1 Especie 2 Especie 3<br>
>   01/2001         1         0         0<br>
>   01/2002         0         1         0<br>
>   01/2003         0         1         0<br>
>   02/2000         1         0         0<br>
>   02/2001         1         0         0<br>
>   02/2004         0         1         0<br>
>   03/2001         0         0         1<br>
>   03/2003         0         0         1<br>
>   04/2000         0         1         0<br>
>   04/2001         1         0         0<br>
>   04/2004         0         1         0<br>
>   05/2000         0         0         1<br>
>   06/2001         0         0         1<br>
>   06/2002         3         0         0<br>
>   06/2003         1         0         0<br>
>   07/2000         0         0         1<br>
>   07/2003         1         0         0<br>
>   07/2004         0         1         0<br>
>   08/2003         0         0         1<br>
>   09/2000         1         0         0<br>
>   09/2002         0         0         1<br>
>   10/2002         0         0         1<br>
>   11/2002         1         1         0<br>
>   11/2004         1         1         0<br>
>   12/2001         0         0         1<br>
>   12/2004         0         0         1<br>
><br>
> Por exemplo ali onde destaquei em vermelho, tinha que ter o mes 2 pro ano de<br>
> 2002 e 2003<br>
> Nos dados eu vejo que o trabalho acabou em 2004, dezembro<br>
>> max(dados$Data)<br>
> [1] "2004-12-01"<br>
><br>
> Mas começou em 2000, fevereiro.<br>
>> min(dados$Data)<br>
> [1] "2000-02-01"<br>
><br>
> Ou seja ta faltando muitos meses. Tem como o table completar isso<br>
> automaticamente? Eu entendo que ele não completou esses meses pois não tem<br>
> um registro, e eles não entraram como um nivel de fator.<br>
> Mas eu gostaria que todos os meses, mesmo sem registros tivessem ali.<br>
> A principio eu estava tentando fazer um vetor com os meses/anos, ai fazer<br>
> uma tabela com zeros e usar o resultado do table pra preencher. mas imagino<br>
> que essa não deve ser a solução mais inteligente.<br>
> Alguém tem alguma sugestão?<br>
><br>
> Abraços<br>
> Augusto Ribas<br>
> --<br>
> Grato<br>
> Augusto C. A. Ribas<br>
><br>
> Site Pessoal: <a href="http://augustoribas.heliohost.org" target="_blank">http://augustoribas.heliohost.org</a><br>
> Lattes: <a href="http://lattes.cnpq.br/7355685961127056" target="_blank">http://lattes.cnpq.br/7355685961127056</a><br>
><br>
><br>
</div></div>> _______________________________________________<br>
> R-br mailing list<br>
> <a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código<br>
> mínimo reproduzível.<br>
_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br>
</blockquote></div><br><br clear="all"><br>-- <br><div>Grato<br>Augusto C. A. Ribas</div>
<div> </div>
<div>Site Pessoal: <a href="http://augustoribas.heliohost.org" target="_blank">http://augustoribas.heliohost.org</a></div>
<div>Lattes: <a href="http://lattes.cnpq.br/7355685961127056" target="_blank">http://lattes.cnpq.br/7355685961127056</a><br></div><br>