Boa noite a todos. Estou com uma duvida aqui sobre como fazer tabelas com 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 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 morreram por mes, separando os anos.<br>Eu fiz isso usando o comando table(), porem tem alguns meses que não teve 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 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 =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><span style="background-color:rgb(255,0,0)">  02/2001         1         0         0<br>  02/2004         0         1         0</span><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 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 automaticamente? Eu entendo que ele não completou esses meses pois não tem 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 uma tabela com zeros e usar o resultado do table pra preencher. mas imagino 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><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>