[R-br] Salvar saídas de um loop
Yury Duarte
yurynepomuceno em gmail.com
Quinta Agosto 10 14:34:55 -03 2017
Fernando,
testei seu código e não consigo fazer com que a função ldply funcione
(could not find function "ldply").
Pelo que busquei na literatura, não necessito de nenhum pacote adicional
para fazer essa função rodar. Também estou usando a versão mais atual do R,
então não acredito que possa ser um problema de versão.
Se tiver alguma ideia do porque isso possa estar ocorrendo, tenho interesse
em ouvir.
Mais uma vez, agradeço a colaboração de todos!
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/88ff2624/attachment.html>
Mais detalhes sobre a lista de discussão R-br