[R-br] Salvar saídas de um loop

Yury Duarte yurynepomuceno em gmail.com
Quinta Agosto 10 09:31:50 -03 2017


Obrigado pela solução, Fernando Toledo!

Irei testa-la e tentarei acertar como salvar os outputs (já que esse é o
ponto principal da minha duvida...rsrs). Assim que fizer, copio o código
aqui na lista.
Quanto ao banco de dados, @sznelwar, eu limpei as pastas de forma a deixar
apenas o arquivo que é do interessa para essa simulação.
Minha intenção era de abrir cada pasta individualmente e de forma ordenada,
com o auxilio do comando for(), de forma a reorganizar o banco de dados num
formato mais fácil de trabalhar.

Att

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP

Em 9 de agosto de 2017 18:38, FHRB Toledo <fernandohtoledo em gmail.com>
escreveu:

> Yuri,
>
> Veja se isso resolve seu problema... :
>
> ## meses
> meses <- c('setembro', 'outubro', 'novembro', 'dezembro', 'janeiro',
> 'fevereiro', 'marco', 'abril')
> names(meses) <- meses # precisam ser nomeados
>
> ## funcao que le um certo aquivo
> readFile <- function(mes) read.table(paste0(mes, '/final.txt'), header =
> TRUE, sep = '\t')
>
> ## carrega todos arquivos em 1 so
> data_raw <- ldply(meses, readFile, .id = 'mes')
>
> ## formato longo
> data_long <- melt(data_raw, id.vars = .(mes, cidades), variable.name =
> 'ano', value.name = 'prod')
>
> ## altera niveis de ano
> levels(data_long$ano) <- 1980:2012
>
> ## uma pilha com as matrizes por cidade
> stack <- dlply(data_long, .(cidades), function(set) dcast(set, mes ~ ano,
> value.var = 'prod'))
>
> Quanto a salvar cada cidade fica como desafio para você :)
>
> 2017-08-09 15:10 GMT-05:00 Yury Duarte via R-br <r-br em listas.c3sl.ufpr.br>
> :
>
>> Obrigado Fernando!
>>
>> Vou dar uma olhada nessas sugestões, obrigado!
>> Mas meu interesse é em executar a tarefa através do comando for() apenas.
>> Gostaria de entender porque meu código não é reproduzível, já que forneci
>> ele na íntegra, juntamente com os arquivos necessários para alimenta-lo.
>>
>> Att
>>
>> Yury Duarte
>> Engenheiro Agrônomo - ESALQ/USP
>>
>> Em 9 de agosto de 2017 16:57, Fernando Antonio de souza <
>> nandodesouza em gmail.com> escreveu:
>>
>>> Ah! Seu código não é reproduzível. Envie um código reproduzível para que
>>> possa receber ajuda.
>>>
>>> att
>>>
>>> =========================================
>>> Fernando Souza
>>> Celular: (31)99796-8781 (Vivo)
>>> E-mail:nandodesouza em gmail.com
>>> <https://n1.nylas.com/link/66b42e4442df0088d872a1d9c4d8cd0c6a355e9f14bbcd0269aedb5ea05af171/0?redirect=mailto%3Ae-mail%253Anandodesouza%40gmail.com&recipient=yurynepomuceno%40gmail.com>
>>> ==========================================
>>>
>>> On Ago 9 2017, at 4:48 pm, Yury Duarte via R-br <
>>> r-br em listas.c3sl.ufpr.br> wrote:
>>>
>>>> Boa tarde colegas listeiros!
>>>>
>>>> Estou tendo um pequeno problema para salvar as saídas de um loop que
>>>> fiz para preencher uma matriz com dados de diferentes arquivos. Meus
>>>> arquivos base possuem informações anuais de produtividade (colunas) de 15
>>>> locais (linhas) para um determinado mês. Construí o loop com intenção de
>>>> gerar um arquivo por local, contemplando as produtividades de cada mês (nas
>>>> linhas) e de cada ano (nas colunas). Conferi o output do único arquivo
>>>> salvo pelo script e os valores correspondem ao arranjo desejado, então
>>>> acredito que a lógica para o preenchimento da matriz esteja correta. Os
>>>> arquivos para executar a simulação estão em anexo e o script está no corpo
>>>> do email.
>>>>
>>>> Desde já, agradeço pela colaboração de todos!
>>>>
>>>> rm(list = ls())
>>>>
>>>> raiz = 'C:\\Users\\Yury\\Desktop\\Mestrado\\1_TESE\\Model_Data\\Mai
>>>> ze\\PREVISAO\\PA\\'
>>>>
>>>> estrategia = c('E1', 'E2', 'E3', 'E4', 'E5')
>>>> meses = c('setembro', 'outubro', 'novembro', 'dezembro', 'janeiro',
>>>> 'fevereiro', 'marco', 'abril')
>>>> cidade = c("abelardoluz", "altamira", "brasilia", "caarapo", "catalao",
>>>> "lagarto", "machado", "mateiros",
>>>>            "muitoscapoes", "piracicaba", "pontagrossa",
>>>> "primaveradoleste", "srmangab", "sdesiderio", "urucui")
>>>> anos = c(1980:2012)
>>>> previsao = matrix(NA, nrow = length(meses), ncol = length(1980:2012))
>>>> colnames(previsao) = 1980:2012
>>>>
>>>> #for(e in 1:length(estrategias)){
>>>>
>>>>   for(m in 1:length(meses)){
>>>>
>>>>     a = read.table(paste0(raiz, 'E1\\', meses[m],'\\', 'final.txt'),
>>>> header = T, sep = '\t')
>>>>     for(city in 1:length(cidade)){
>>>>
>>>>       for(i in 1:length(anos)){
>>>>
>>>>         previsao[m,i] = a[city,i]
>>>>       }
>>>>     }
>>>>     write.table(previsao, paste0(raiz, 'E1\\', cidade[city],'.txt'),
>>>> row.names = F, col.names = T, sep = '\t')
>>>>   }
>>>> #}
>>>>
>>>> Yury Duarte
>>>> Engenheiro Agrônomo - ESALQ/USP
>>>>
>>>> _______________________________________________
>>>> R-br mailing listR-br em listas.c3sl.ufpr.brhttps://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.
>>>>
>>>>
>>
>> _______________________________________________
>> 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/20170810/92a24144/attachment.html>


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