Extraindo valores de interesse em um dataframe

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

Yuri eu usei o dssat tb no meu doc e eu tenho um script para isso! Vou procurar e te mando depois Enviado do meu iPhone
Em 23 de jan de 2017, às 11:59, Yury Duarte via R-br <r-br@listas.c3sl.ufpr.br> escreveu:
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=sharin...
link para a saída completa: https://drive.google.com/file/d/0B6tnaf2fmoCcWjlFclc2R2NkVEU/view?usp=sharin...
Yury Duarte Engenheiro Agrônomo - ESALQ/USP _______________________________________________ R-br mailing list R-br@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.

Seria ótimo!! Obrigado! Yury Duarte Engenheiro Agrônomo - ESALQ/USP Em 23 de janeiro de 2017 12:01, <luc.souza@usp.br> escreveu:
Yuri eu usei o dssat tb no meu doc e eu tenho um script para isso! Vou procurar e te mando depois
Enviado do meu iPhone
Em 23 de jan de 2017, às 11:59, Yury Duarte via R-br < r-br@listas.c3sl.ufpr.br> escreveu:
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@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.

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@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@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.

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@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@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@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.

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@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@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@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@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.

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@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@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@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@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@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.
participantes (3)
-
luc.souza@usp.br
-
Tiago Fragoso
-
Yury Duarte