[R-br] Extraindo valores de interesse em um dataframe

Yury Duarte yurynepomuceno em gmail.com
Segunda Janeiro 30 08:45:44 BRST 2017


Obrigado pela explicação, Tiago!!
Ficou bem mais fácil montar a estrutura do código com sua explicação.

Abraços!

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP

Em 27 de janeiro de 2017 10:31, Tiago Fragoso <fragoso2718 em gmail.com>
escreveu:

> Olá,
>
> 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.
>
> 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:
>
> (?=   <- olha para a string a frente e identifica uma das 2 alternativas
> (       <- inicio do grupo de captura
> \\*DSSAT <- strings iniciadas com '*DSSAT")
> [\\S\\s]*? <- captura tudo que não for whitespace (\S) ou for (\s)
> \\R\\R) <- duas quebras de linha (\n\t, etc)
> |  <- 'ou' da condicional
> (\\*DSSAT[\\S\\s]*? <- mesma coisa da string anterior
> $ <- fim da string
> ) <- fim da condicional
>
> 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).
>
>
>
>
> 2017-01-27 9:11 GMT-02:00 Yury Duarte <yurynepomuceno em gmail.com>:
>
>> Bom dia colegas!
>>
>> Rafael e Tiago, gostaria de agradecer pelas dicas na manipulação dos
>> outputs do DSSAT.
>> 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.
>> 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.
>> Mais uma vez, agradeço pela ajuda de todos!!
>>
>> Abs
>>
>> Yury Duarte
>> Engenheiro Agrônomo - ESALQ/USP
>>
>> Em 26 de janeiro de 2017 14:49, Tiago Fragoso <fragoso2718 em gmail.com>
>> escreveu:
>>
>>> Olá,
>>>
>>> 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
>>>
>>> stringr::str_match_all(string = teste,pattern =
>>> '(?=(\\*DSSAT[\\S\\s]*?\\R\\R)|(\\*DSSAT[\\S\\s]*?$))')
>>>
>>> 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.
>>>
>>> 2017-01-23 11:58 GMT-02:00 Yury Duarte via R-br <
>>> r-br em listas.c3sl.ufpr.br>:
>>>
>>>> Bom dia colegas programadores!
>>>>
>>>> Há algum tempo venho trabalhando com o modelo de simulação DSSAT.
>>>> 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.
>>>> 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).
>>>> Dessa forma, dentro de cada arquivo eu tenho 36 simulações de plantio
>>>> por ano e 34 anos de histórico.
>>>> 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.
>>>> 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.
>>>>
>>>> Desde já, agradeço a todos!
>>>>
>>>> link para a saída parcial:
>>>> https://drive.google.com/file/d/0B6tnaf2fmoCcbUtPQ0NfUmpxdXM
>>>> /view?usp=sharing
>>>>
>>>> link para a saída completa:
>>>> https://drive.google.com/file/d/0B6tnaf2fmoCcWjlFclc2R2NkVEU
>>>> /view?usp=sharing
>>>>
>>>> Yury Duarte
>>>> Engenheiro Agrônomo - ESALQ/USP
>>>>
>>>> _______________________________________________
>>>> R-br mailing list
>>>> R-br em listas.c3sl.ufpr.br
>>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>>>> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
>>>> código mínimo reproduzível.
>>>>
>>>
>>>
>>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170130/ac760866/attachment.html>


Mais detalhes sobre a lista de discussão R-br