<div>Ola pessoal, estou aqui tendo problemas para usar horas com o R.</div><div>Bem basicamente o que eu queria fazer é o seguinte, fiquei observando uns propágulos de macrófitas descendo o rio, ai marcando que horas eu os via.</div>
<div>Quando subia algum barquinho eu marcava numa planilha barco subiu, e continuava marcando.</div><div>Ai ficou uma planilha mais ou menos assim:</div><div>  classe       hora<br>      s        06:45<br>      s        08:30<br>
      s        09:17<br>      b       10:20<br>      b       10:30<br>      b       10:40<br>      b       11:10<br>      b       11:22<br>      b       11:33</div><div>onde "s" é sem barco e "b" com barco</div>
<div>ai a partir dessa planilha eu queria gerar uma planilha com a diferença de tempo entre cada propágulo, tipo linha 2 - linha 1 por classe;</div><div>segue um código do que estive fazendo e no final algumas perguntas:</div>
<div> </div><div>##############################################################</div><div> </div><div># exemplo</div><div>hora<-c("11:33","9:17","6:45","8:30","10:20","10:30","10:40","11:10","11:22")<br>
classe<-c("b",rep("s",3),rep("b",5))<br>exemplo<-data.frame(cbind(classe,hora))<br>exemplo</div><div><br>#transformando em hora<br>exemplo$hora<-as.POSIXct(strptime(exemplo$hora,format="%H:%M"))<br>
exemplo</div><div><br>#organizando a planilha por hora<br>exemplo<-exemplo[order(exemplo$hora),]<br>exemplo</div><div> </div><div>#o que eu preciso são as diferenças de tempo assim:<br>difftime(exemplo[2,2],exemplo[1,2])</div>
<div> </div><div>#tentando gerar a planilha que gostaria com um loop de for e um if<br>dif<-NA<br>evento<-NA<br>for (n in 1:(nrow(exemplo)-1)) {<br>if(exemplo$classe[n+1]==exemplo$classe[n])   {<br>dif[n]<-difftime(exemplo[n+1,2],exemplo[n,2])<br>
evento[n]<-exemplo$classe[n]<br>}<br>}<br>final<-data.frame(cbind(evento,dif))<br>final</div><div> </div><div>#########################################################################3</div><div> </div><div>Bem, estou quebrando cabeça aqui, se alguem puder dar uma luz no seguinte:</div>
<div>01 - Porque o difftime se torna um numero quando o loop o coloca dentro do dif? O Dif tem que ser de antemão da classe Date-time? </div><div>02 - Porque o evento ali sai numeros e não a classe s ou b?</div><div>03 - no meu final, eu nao quero a diferença de tempo da hora que ta trocando de sem barco pra com barco, onde fica NA, como eu faria fazer aquilo nao existir? Tem que colocar algo no else pra não realizar nenhuma operação?</div>
<div>04 - A mensagem truncated se dar por causa do if não calcular a diferença da linha 4 com a 3?</div><div> </div><div>Bem é isso, se alguem puder ajudar...</div><div><br clear="all"><br>-- <br></div><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>