Aos interessados, segue solução do problema utilizando a função for(). Att
rm(list = ls()) raiz = 'C:\\Users\\Yury\\Desktop\\Mestrado\\1_TESE\\Model_Data\\Maize\\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(city in 1:length(cidade)){ for(m in 1:length(meses)){ a = read.table(paste0(raiz, 'E1\\', meses[m],'\\', 'final.txt'), header = T, sep = '\t') 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 Em 10 de agosto de 2017 14:34, Yury Duarte <yurynepomuc...@gmail.com> escreveu: > 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 <fernandohtol...@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@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 < >>> nandodeso...@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:nandodeso...@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@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...@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@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. >>> >> >> >
_______________________________________________ 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.