<div dir="ltr">Obrigado pela explicação, Tiago!!<br>Ficou bem mais fácil montar a estrutura do código com sua explicação.<div><br></div><div>Abraços!</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Yury Duarte<br></div>Engenheiro Agrônomo - ESALQ/USP<br></div></div></div>
<br><div class="gmail_quote">Em 27 de janeiro de 2017 10:31, Tiago Fragoso <span dir="ltr"><<a href="mailto:fragoso2718@gmail.com" target="_blank">fragoso2718@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Olá,<div><br></div><div>A expressão ficou meio indecifrável mesmo, mas isso tende a acontecer com expressões regulares. Para te dar uma direção, a função str_match() busca uma string de texto por um padrão especificado. Frequentemente, você usa uma expressão regular (regex) para dar um match em padrões mais gerais. O match_all faz isso em uma lista de strings. </div><div><br></div><div>A parte indecifrável é a regex. Se você vai mexer um pouco com esses logs, talvez seja bom ler um pouco a respeito. Ela diz, em linhas gerais:</div><div><br></div><div><span style="font-size:12.8px">(?=   <- olha para a string a frente e identifica uma das 2 alternativas</span></div><div><span style="font-size:12.8px">(       <- inicio do grupo de captura</span></div><div><span style="font-size:12.8px">\\*DSSAT <- strings iniciadas com '*DSSAT")</span></div><div><span style="font-size:12.8px">[\\S\\s]*? <- captura tudo que não for whitespace (\S) ou for (\s)</span></div><div><span style="font-size:12.8px">\\R\\R) <- duas quebras de linha (\n\t, etc)</span></div><div><span style="font-size:12.8px">|  <- 'ou' da condicional</span></div><div><span style="font-size:12.8px">(\\*DSSAT[\\S\\s]*? <- mesma coisa da string anterior</span></div><div><span style="font-size:12.8px">$ <- fim da string</span></div><div><span style="font-size:12.8px">) <- fim da condicional</span><br></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Basicamente, essa expressão diz "Capture tudo entre *DSSAT e duas quebras de linha" (que são as runs antes da ultima) ou "tudo entre DSSAT e o fim da string olhando a frente" (que é o caso da última). </span></div><div><div class="h5"><div><br></div><div><br></div><div><span style="font-size:12.8px"><br></span></div><div class="gmail_extra"><br><div class="gmail_quote">2017-01-27 9:11 GMT-02:00 Yury Duarte <span dir="ltr"><<a href="mailto:yurynepomuceno@gmail.com" target="_blank">yurynepomuceno@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">Bom dia colegas!<div><br></div><div>Rafael e Tiago, gostaria de agradecer pelas dicas na manipulação dos outputs do DSSAT.<br>Não sou familiar com os comandos que vcs sugeriram (Tiago, ainda estou tentando decifrar sua linha de comando), mas irei estuda-los para tentar aplicar nos meus arquivos PlantGro.OUT, acho que essa será uma saída.</div><div>Acredito que mais algumas duvidas irão surgir conforme eu avançar nessa manipulação dos dados, então retornarei esse post para mais esclarecimentos muito em breve.</div><div>Mais uma vez, agradeço pela ajuda de todos!!<br></div><div><br></div><div>Abs</div></div><div class="gmail_extra"><span><br clear="all"><div><div class="m_916461746394455560m_-473645493765781958m_1207452730697468656gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Yury Duarte<br></div>Engenheiro Agrônomo - ESALQ/USP<br></div></div></div>
<br></span><div><div class="m_916461746394455560m_-473645493765781958h5"><div class="gmail_quote">Em 26 de janeiro de 2017 14:49, Tiago Fragoso <span dir="ltr"><<a href="mailto:fragoso2718@gmail.com" target="_blank">fragoso2718@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Olá,<div><br></div><div>Para a última linha de cada uma das suas simulações, você pode ler o seu código no R usando a função readChar() para ler apenas como um string e separar as últimas linhas em uma lista usando</div><div><br></div><div>stringr::str_match_all(string = teste,pattern = '(?=(\\*DSSAT[\\S\\s]*?\\R\\R)<wbr>|(\\*DSSAT[\\S\\s]*?$))')<br></div><div><br></div><div>Repare apenas que todas as linhas menos a última do arquivo estarão na posição 2 do array, enquanto a última estará no 3. Com a linha separada, você pode obter o valor que quiser usando strsplit() e a posição que quiser.</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_916461746394455560m_-473645493765781958m_1207452730697468656h5">2017-01-23 11:58 GMT-02:00 Yury Duarte 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 class="m_916461746394455560m_-473645493765781958m_1207452730697468656h5"><div dir="ltr"><span class="m_916461746394455560m_-473645493765781958m_1207452730697468656m_-7491974893884363236m_7248425237519621089gmail-im" style="font-size:12.8px"><span style="font-size:12.8px">Bom dia colegas programadores!</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Há algum tempo venho trabalhando com o modelo de simulação DSSAT.</div></span><div style="font-size:12.8px">Agora estou tentando organizar suas saídas de uma forma que facilite as analises. Para que possam entender melhor o formato das saídas, anexei dois links para download do output do modelo. </div><span class="m_916461746394455560m_-473645493765781958m_1207452730697468656m_-7491974893884363236m_7248425237519621089gmail-im" style="font-size:12.8px"><div style="font-size:12.8px">Toda simulação é antecedida de um pequeno cabeçalho e cada uma delas representa uma data de plantio (primeira linha da coluna DOY) em um determinado ano (coluna YEAR).</div><div style="font-size:12.8px">Dessa forma, dentro de cada arquivo eu tenho 36 simulações de plantio por ano e 34 anos de histórico.</div><div style="font-size:12.8px">A informação que eu gostaria de extrair é exatamente a última linha de cada simulação, referente a décima coluna (GWAD). Como cada simulação tem um numero diferente de linhas (dias do ciclo da cultura em questão), fiquei sem ter como resgatar os valores da coluna de interesse em intervalos fixos.</div><div style="font-size:12.8px">Infelizmente não tenho nenhum script decente em andamento que possa ser compartilhado para elucidar melhor minhas intenções, mas espero ter conseguido explicar minimamente a minha dúvida.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Desde já, agradeço a todos!</div><div style="font-size:12.8px"><br></div></span><div style="font-size:12.8px"><div style="font-size:12.8px">link para a saída parcial:</div><div style="font-size:small"><span style="font-size:12.8px"><a href="https://drive.google.com/file/d/0B6tnaf2fmoCcbUtPQ0NfUmpxdXM/view?usp=sharing" target="_blank">https://drive.google.com/file/<wbr>d/0B6tnaf2fmoCcbUtPQ0NfUmpxdXM<wbr>/view?usp=sharing</a></span></div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">link para a saída completa:</div><div style="font-size:12.8px"><span style="font-size:12.8px"><a href="https://drive.google.com/file/d/0B6tnaf2fmoCcWjlFclc2R2NkVEU/view?usp=sharing" target="_blank">https://drive.google.com/file/<wbr>d/0B6tnaf2fmoCcWjlFclc2R2NkVEU<wbr>/view?usp=sharing</a></span></div><div style="font-size:12.8px"><br></div><div><div class="m_916461746394455560m_-473645493765781958m_1207452730697468656m_-7491974893884363236m_7248425237519621089gmail_signature"><div dir="ltr"><div>Yury Duarte<br></div>Engenheiro Agrônomo - ESALQ/USP<br></div></div></div>
</div>
<br></div></div><span>______________________________<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></span></blockquote></div><br></div>
</blockquote></div><br></div></div></div>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>