João, não sei o quão esse procedimento irá escalar,mas considere usar um SGBD, como Postgresql/MySQL ou outro.
Há um pacote sqldf que permite trabalhar com consultas à bases de dadose tratar o resultado como um dataframe.
Atenciosamente,David F.
Em 8 de junho de 2015 11:19, joão Rodrigo Castro <joaorodrigo2005@gmail.com> escreveu:
Entendi Augusto, vou implementar! Muito Obrigado
Em 8 de junho de 2015 11:14, Augusto Ribas <ribas.aca@gmail.com> escreveu:
Algo assim:
#Ve o nome dos arquivos da pasta, use getwd e setwd se precisar mudar de pasta
arquivos<-list.files()
#pegue os arquivos que são .dat
indices<-grep(".dat",arquivos)
arquivos[indices]
#separe um vetor com eles, podemos reutilizar o vetor aqui
arquivos<-arquivos[indices]
#Ai você usa alguma estrutura de repetição, um loop por exemplo, para processar um por um
for(i in 1:length(arquivos)) {
print(paste("Lendo",arquivos[i]))
#Seu codigo aqui
}
#ai insira seu código ali, fazendo as operações que tem que fazer, e juntando os arquivos, salvando, o que for necessário.
Em 8 de junho de 2015 10:06, joão Rodrigo Castro <joaorodrigo2005@gmail.com> escreveu:
Há ainda outros passos onde os atributos dos arquivos são lidos e posteriormente utilizados em outros cálculos. No final é gerado um arquivo de saída com o write.table com os resultados obtidos.Obrigado Augusto, vou dar uma olhada nas funções que vc citou.Um trecho do código:
# Passo A
Teste_SF = read.table("dado1.dat", dec=".",h=T ,col.names = c( "ano", "mes", "jday","Rad","Tmax", "Tmin","stopo","trans","dt","lat","lon"))
Teste = subset(Teste_SF, trans<0.81 & Rad>1)
summary(Teste)
# Passo B
dr = 1 + 0.033 * cos(0.0172*Teste$jday)
declin = 0.409 * sin(0.0172*Teste$jday - 1.39)
omega = acos(-tan(Teste$lat*pi/180) * tan(declin))
Teste$Rad_Pot = 37.6*dr*(omega*sin(declin)*sin(Teste$lat*pi/180) + cos(declin)*cos(Teste$lat*pi/180)*sin(omega))
Então como são 38 arquivos (dado1.dat, dado2.dat, etc ..... ) a utilização de alguma função que permita a leitura de todos os arquivos, e depois fazer um loop pelos arquivos, tornaria mais dinâmica a tarefa.
Obrigado pelas dicas!
João
Em 8 de junho de 2015 10:42, Augusto Ribas <ribas.aca@gmail.com> escreveu:
Da um exemplo de código como você está fazendo, talvez alguém tenha uma ideia melhor.Não entendi exatamente o problema, mas os arquivos estão em um determinado diretorio?Não daria para dar um list.files() para pegar a lista de arquivos dos diretorio, usar um grep() para selecionar os arquivos que quer ler e então em um loop ir ler os arquivos com read.table, ai você pode ir dando merge ou concatenando eles.
Em 8 de junho de 2015 08:45, joão Rodrigo Castro <joaorodrigo2005@gmail.com> escreveu:
_______________________________________________Pessoal,
Tenho utilizado o read.table para ler arquivos e realizar tarefas simples. Contudo, agora necessito rodar 6 programas para 38 localidades distintas e tenho feito isso ponto a ponto, para cada um dos modelos... Já rodei os programas uma vez dessa maneira trabalhosa e agora pretendo automatizar o processo lendo todos os 38 arquivos de uma só vez e rodar cada um dos modelos para os 38 arquivos (um modelo por vez).
Minha pergunta é: há alguma função para leitura de vários arquivos juntos ?
Por favor, se não ficar claro posso tentar explicar melhor!
abs
--
João Rodrigo de CastroPrograma de Pós-Graduação em MeteorologiaBolsista Laboratório de Agrometeorologia - Embrapa Clima TemperadoUniversidade Federal de Pelotas
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.
--
Grato
Augusto C. A. RibasSite Pessoal: http://recologia.com.br/Github: https://github.com/Squiercg
_______________________________________________
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.
--
João Rodrigo de CastroPrograma de Pós-Graduação em MeteorologiaBolsista Laboratório de Agrometeorologia - Embrapa Clima TemperadoUniversidade Federal de Pelotas
_______________________________________________
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.
--
Grato
Augusto C. A. RibasSite Pessoal: http://recologia.com.br/Github: https://github.com/Squiercg
_______________________________________________
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.
--
João Rodrigo de CastroPrograma de Pós-Graduação em MeteorologiaBolsista Laboratório de Agrometeorologia - Embrapa Clima TemperadoUniversidade Federal de Pelotas
_______________________________________________
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.
-- Best regards, Vinícius Lionel Mateus, MSc (http://lattes.cnpq.br/6501001637020665) Chemistry PhD Student Atmospheric Chemistry Laboratory - Dep. Chemistry PUC-Rio - Pontifical Catholic University of Rio de Janeiro Marquês de São Vicente, 225, Gávea - Rio de Janeiro, RJ - Brazil CEP: 22451-900 Phone: (+45) 26 28 28 51 (+55) (21) 3527-1327 (+55) (21) 993 - 588 - 051 Skype: vinicius.lionel http://www.qui.puc-rio.br/index.html