<div dir="ltr">Olá, <div><br></div><div>Se seu formato de tempo sempre terá o formato:</div><div><br></div><div><span style="font-size:12.8px">P<dias>DT<horas>H<minutos>M<segundos>S </span><br></div><div><br></div><div><span style="font-size:12.8px">com esses marcadores, uma expressão regular que captura esses números é dada por </span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">P(\d+)DT(\d+)H(\d+)M(\d+)S</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">salvo por alguma sutileza que te obrigue a escapar algum simbolo ai. Imagino que uma função em R que transforma em minutos seria algo do tipo:</span></div><div><span style="font-size:12.8px"><br></span></div><div><div style=""><span style="font-size:12.8px">converteMinutos <- function(Codigo){  </span></div><div style=""><span style="font-size:12.8px">  componentes <- stringr::str_match(Codigo,"P(\\d+)DT(\\d+)H(\\d+)M(\\d+)S")</span></div><div style=""><span style="font-size:12.8px">  componentes <- as.numeric(componentes[,2:5]) </span><span style="font-size:12.8px">#primeiro elemento é a string completa, subsequentes são os grupos de captura</span></div><div style=""><span style="font-size:12.8px">  t_minutos <- componentes%*%c(24*60,  #minutos em um dia</span></div><div style=""><span style="font-size:12.8px">                                                       60,     #minutos em uma hora</span></div><div style=""><span style="font-size:12.8px">                                                       1,      #minuto já está na escala</span></div><div style=""><span style="font-size:12.8px">                                                       1/60)   #segundos </span></div><div style=""><span style="font-size:12.8px">  return(t_minutos)</span></div><div style=""><span style="font-size:12.8px">}</span></div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-08-11 8:11 GMT-03:00 Raphael Saldanha via R-br <span dir="ltr"><<a href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Olá Cesar, obrigado pela dica!<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2016-08-11 1:14 GMT-03:00 Cesar Rabak <span dir="ltr"><<a href="mailto:cesar.rabak@gmail.com" target="_blank">cesar.rabak@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Raphael,<div><br></div><div>Essa funcionalidade está "estacionada" em um pedido de "feature request" para um pacote R que cuida exatamente dessas coisas <a href="https://github.com/hadley/lubridate/issues/362" target="_blank">lubridate</a>  desde dezembro de 2015! </div><div><br></div><div>O <i>parsing</i> de cadeias ISO 8601 não é trivial e é bem documentado em <i>fora</i> de programação em diversas linguagens, por isso, a recomendação é que você aproveite que existe a funcionalidade pronta em Python (teste-a antes. . .) e converta as durações para um arquivo que você possa importar no R e seguir daí.</div><div><br></div><div>HTH</div><div>--</div><div>Cesar Rabak</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>2016-08-10 23:31 GMT-03:00 Raphael Saldanha via R-br <span dir="ltr"><<a href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a>></span>:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div><div><div><div><div><div><div>Olá pessoal,<br><br></div>Preciso lidar com um formato da ISO8601 para duração de tempo. A string vem desta forma:<br><br>x <- "P4DT21H36M43S"<br><br></div>Onde P indica que é uma duração de tempo, 4D : quatro dias, T indica que a seguir vem informações sobre tempo em um dia, 21H : 21 horas, 36M : 36 minutos e 43S : 43 segundos.<br><br></div>Guia: <a href="https://www.w3.org/TR/xmlschema-2/#isoformats" target="_blank">https://www.w3.org/TR/xmlschem<wbr>a-2/#isoformats</a><br><br></div>Preciso criar uma função para transformar isto em minutos. Até achei algo parecido em python (<a href="https://github.com/gweis/isodate/blob/master/src/isodate/isoduration.py" target="_blank">https://github.com/gweis/isod<wbr>ate/blob/master/src/isodate/is<wbr>oduration.py</a>), mas não vi nada parecido para R. <br><br></div>Alguém com mais experiência em expressões regulares pode me dar uma mão?<br><br></div>Att,<br><br></div>Raphael Saldanha<br><div><div><div><div><div><div><br><br></div></div></div></div></div></div></div>
<br></div></div>______________________________<wbr>_________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi<wbr>-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-g<wbr>uia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<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" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/<wbr>cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-<wbr>guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>