<div dir="ltr"><div>Os comando so Fernando Toledos estão corretos, porém necessitava de algumas correções na função melt<br><br></div><div>Os pacotes necessários para o código são: {plyr} e {reshape}<br></div><div><br></div><div><div>setwd("~/Documentos/Biblioteca/EstudoR" )<br><br>#raiz = 'C:\\Users\\Yury\\Desktop\\Mestrado\\1_TESE\\Model_Data\\Maize\\PREVISAO\\PA\\' <br>raiz <- "~/Documentos/Biblioteca/EstudoR/E1"<br><br>##---------------------------------------------------------------<br>estrategia = c('E1', 'E2', 'E3', 'E4', 'E5')<br><br>meses = c('setembro', 'outubro', 'novembro', 'dezembro', 'janeiro', 'fevereiro', 'marco', 'abril')<br><br>names(meses) <- meses<br><br>cidade = c("abelardoluz", "altamira", "brasilia", "caarapo", "catalao", "lagarto", "machado", "mateiros","muitoscapoes", "piracicaba", "pontagrossa", "primaveradoleste", "srmangab", "sdesiderio", "urucui")<br><br>anos = c(1980:2012)<br><br>##-----------------------------------------------------------------------------------------------------<br><br>readFile <- function(mes) read.table(paste0(raiz,"/",mes,'/final.txt'), header = TRUE, sep = '\t')<br>## pacote necessário para a função dplyr<br>##install.packages(plyr) <br>library(plyr)<br>data_raw <- ldply(meses, readFile, .id = 'mes')<br>str(data_raw)<br><br>library(reshape)<br>data_long <- melt(data_raw, id.vars = c('mes', 'cidades'), <a href="http://variable.name">variable.name</a> = 'ano', <a href="http://value.name">value.name</a> = 'prod')<br><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">Em 10 de agosto de 2017 15:10, 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> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Aos interessados, segue solução do problema utilizando a função for().<div><br></div><div>Att</div><div><br></div><div><span class=""><div>rm(list = ls())</div><div><br></div><div>raiz = 'C:\\Users\\Yury\\Desktop\\<wbr>Mestrado\\1_TESE\\Model_Data\\<wbr>Maize\\PREVISAO\\PA\\' </div><div><br></div><div>estrategia = c('E1', 'E2', 'E3', 'E4', 'E5')</div><div>meses = c('setembro', 'outubro', 'novembro', 'dezembro', 'janeiro', 'fevereiro', 'marco', 'abril')</div><div>cidade = c("abelardoluz", "altamira", "brasilia", "caarapo", "catalao", "lagarto", "machado", "mateiros",</div><div>           "muitoscapoes", "piracicaba", "pontagrossa", "primaveradoleste", "srmangab", "sdesiderio", "urucui")</div><div>anos = c(1980:2012)</div><div>previsao = matrix(NA, nrow = length(meses), ncol = length(1980:2012))</div><div>colnames(previsao) = 1980:2012</div><div><br></div><div>#for(e in 1:length(estrategias)){</div></span><div>for(city in 1:length(cidade)){</div><span class=""><div>  for(m in 1:length(meses)){</div><div>    </div><div>    a = read.table(paste0(raiz, 'E1\\', meses[m],'\\', 'final.txt'), header = T, sep = '\t')</div><div>    </div><div>      </div></span><span class=""><div>      for(i in 1:length(anos)){</div><div>        </div><div>        previsao[m,i] = a[city,i]</div><div>        </div><div>      }</div><div>    }</div><div>    write.table(previsao, paste0(raiz, 'E1\\', cidade[city],'.txt'), row.names = F, col.names = T, sep = '\t')</div><div>  } </div><div>#}</div></span></div></div><div class="gmail_extra"><span class=""><br clear="all"><div><div class="m_-1418152630686331307gmail_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="h5"><div class="gmail_quote">Em 10 de agosto de 2017 14:34, Yury Duarte <span dir="ltr"><<a href="mailto:yurynepomuceno@gmail.com" target="_blank">yurynepomuceno@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">Fernando, <div><br></div><div>testei seu código e não consigo fazer com que a função ldply funcione (could not find function "ldply").<br>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.</div><div>Se tiver alguma ideia do porque isso possa estar ocorrendo, tenho interesse em ouvir.</div><div><br></div><div>Mais uma vez, agradeço a colaboração de todos!</div><div><br></div><div>Att</div></div><div class="gmail_extra"><span><br clear="all"><div><div class="m_-1418152630686331307m_-3871168077350019668gmail_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 class="gmail_quote"><span>Em 9 de agosto de 2017 18:38, FHRB Toledo <span dir="ltr"><<a href="mailto:fernandohtoledo@gmail.com" target="_blank">fernandohtoledo@gmail.com</a>></span> escreveu:<br></span><div><div class="m_-1418152630686331307h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Yuri,<br><br></div>Veja se isso resolve seu problema... :<br><br>## meses<br>meses <- c('setembro', 'outubro', 'novembro', 'dezembro', 'janeiro', 'fevereiro', 'marco', 'abril')<br>names(meses) <- meses # precisam ser nomeados<br><br>## funcao que le um certo aquivo<br>readFile <- function(mes) read.table(paste0(mes, '/final.txt'), header = TRUE, sep = '\t')<br><br>## carrega todos arquivos em 1 so<br>data_raw <- ldply(meses, readFile, .id = 'mes') <br><br>## formato longo<br>data_long <- melt(data_raw, id.vars = .(mes, cidades), <a href="http://variable.name" target="_blank">variable.name</a> = 'ano', <a href="http://value.name" target="_blank">value.name</a> = 'prod')<br><br>## altera niveis de ano<br>levels(data_long$ano) <- 1980:2012<br><br>## uma pilha com as matrizes por cidade<br>stack <- dlply(data_long, .(cidades), function(set) dcast(set, mes ~ ano, value.var = 'prod'))<br><br>Quanto a salvar cada cidade fica como desafio para você :)<br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-1418152630686331307m_-3871168077350019668h5">2017-08-09 15:10 GMT-05: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_-1418152630686331307m_-3871168077350019668h5"><div dir="ltr">Obrigado Fernando!<div><br></div><div>Vou dar uma olhada nessas sugestões, obrigado!<br>Mas meu interesse é em executar a tarefa através do comando for() apenas.</div><div>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.</div><div><br></div><div>Att</div></div><div class="gmail_extra"><span><br clear="all"><div><div class="m_-1418152630686331307m_-3871168077350019668m_-7941058575152882186m_-1458225456452094918gmail_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_-1418152630686331307m_-3871168077350019668m_-7941058575152882186h5"><div class="gmail_quote">Em 9 de agosto de 2017 16:57, Fernando Antonio de souza <span dir="ltr"><<a href="mailto:nandodesouza@gmail.com" target="_blank">nandodesouza@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ah! Seu código não é reproduzível. Envie um código reproduzível para que possa receber ajuda.<div><div><br></div><div>att</div><span><br><u></u>==============================<wbr>===========<br>Fernando Souza<br>Celular: (31)99796-8781 (Vivo)<br><a href="https://n1.nylas.com/link/66b42e4442df0088d872a1d9c4d8cd0c6a355e9f14bbcd0269aedb5ea05af171/0?redirect=mailto%3Ae-mail%253Anandodesouza%40gmail.com&recipient=yurynepomuceno%40gmail.com" style="background-color:rgb(255,255,255);outline:0px" target="_blank">E-mail:nandodesouza@gmail.com</a><br>==============================<wbr>============<u></u></span></div><img class="m_-1418152630686331307m_-3871168077350019668m_-7941058575152882186m_-1458225456452094918m_732779726229364610n1-open" style="border:0;width:0;height:0" width="0" height="0">
          <div class="gmail_quote m_-1418152630686331307m_-3871168077350019668m_-7941058575152882186m_-1458225456452094918m_732779726229364610nylas-quote m_-1418152630686331307m_-3871168077350019668m_-7941058575152882186m_-1458225456452094918m_732779726229364610nylas-quote-id-62a615ad394e5e12267b0d11c9fc011d08554353f3303063a14031635e2c369a"><span>
            <br>
            On Ago 9 2017, at 4:48 pm, Yury Duarte via R-br <<a href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a>> wrote:
            <br>
            </span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-1418152630686331307m_-3871168077350019668m_-7941058575152882186m_-1458225456452094918h5">
              <div dir="ltr"><span style="font-size:12.8px">Boa tarde colegas listeiros!</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">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.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Desde já, agradeço pela colaboração de todos!</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><div>rm(list = ls())</div><div><br></div><div>raiz = 'C:\\Users\\Yury\\Desktop\\Mes<wbr>trado\\1_TESE\\Model_Data\\Mai<wbr>ze\\PREVISAO\\PA\\' </div><div><br></div><div>estrategia = c('E1', 'E2', 'E3', 'E4', 'E5')</div><div>meses = c('setembro', 'outubro', 'novembro', 'dezembro', 'janeiro', 'fevereiro', 'marco', 'abril')</div><div>cidade = c("abelardoluz", "altamira", "brasilia", "caarapo", "catalao", "lagarto", "machado", "mateiros",</div><div>           "muitoscapoes", "piracicaba", "pontagrossa", "primaveradoleste", "srmangab", "sdesiderio", "urucui")</div><div>anos = c(1980:2012)</div><div>previsao = matrix(NA, nrow = length(meses), ncol = length(1980:2012))</div><div>colnames(previsao) = 1980:2012</div><div><br></div><div>#for(e in 1:length(estrategias)){</div><div>  </div><div>  for(m in 1:length(meses)){</div><div>    </div><div>    a = read.table(paste0(raiz, 'E1\\', meses[m],'\\', 'final.txt'), header = T, sep = '\t')</div><div>    for(city in 1:length(cidade)){</div><div>      </div><div>      for(i in 1:length(anos)){</div><div>        </div><div>        previsao[m,i] = a[city,i]</div><div>      }</div><div>    }</div><div>    write.table(previsao, paste0(raiz, 'E1\\', cidade[city],'.txt'), row.names = F, col.names = T, sep = '\t')</div><div>  }</div><div>#}</div><div><br></div></div><div><div><div dir="ltr"><div>Yury Duarte<br></div>Engenheiro Agrônomo - ESALQ/USP<br></div></div></div>
</div>
</div></div><pre class="m_-1418152630686331307m_-3871168077350019668m_-7941058575152882186m_-1458225456452094918m_732779726229364610nylas-plaintext">______________________________<wbr>_________________
R-br mailing list
<span><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi<wbr>-bin/mailman/listinfo/r-br</a>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-g<wbr>uia</a>) e forne�a c�digo m�nimo reproduz�vel.</span></pre>
            </blockquote>
          </div>
</blockquote></div><br></div></div></div>
<br>______________________________<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></div></div>
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></blockquote></div><br></div>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div></div></div>
<br>______________________________<wbr>_________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">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/<wbr>cgi-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-<wbr>guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span>=========================================<br>
Fernando Souza<br>
Zootecnista, DSc. Produção e Alimentação Animal<br>
Celular: (31)99796-8781 (Vivo)<br>
<a href="mailto:e-mail%3Anandodesouza@gmail.com" target="_blank">E-mail:nandodesouza@gmail.com</a><br>
Lattes: <a href="http://lattes.cnpq.br/6519538815038307" target="_blank">http://lattes.cnpq.br/6519538815038307</a><br>
Blog: <a href="https://producaoanimalcomr.wordpress.com/" target="_blank">https://producaoanimalcomr.wordpress.com/</a><br>
==========================================</span></div></div></div></div></div></div></div></div></div></div>
</div>