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 dados
e tratar o resultado como um dataframe.
Atenciosamente,
David F.
Em 8 de junho de 2015 11:19, joão Rodrigo Castro
<[email protected] <mailto:[email protected]>> escreveu:
Entendi Augusto, vou implementar! Muito Obrigado
Em 8 de junho de 2015 11:14, Augusto Ribas <[email protected]
<mailto:[email protected]>> 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
<[email protected]
<mailto:[email protected]>> escreveu:
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))
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.
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
<[email protected] <mailto:[email protected]>> escreveu:
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.
Da um exemplo de código como você está fazendo,
talvez alguém tenha uma ideia melhor.
Em 8 de junho de 2015 08:45, joão Rodrigo Castro
<[email protected]
<mailto:[email protected]>> 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 Castro
Programa de Pós-Graduação em Meteorologia
Bolsista Laboratório de Agrometeorologia -
Embrapa Clima Temperado
Universidade Federal de Pelotas
_______________________________________________
R-br mailing list
[email protected]
<mailto:[email protected]>
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. Ribas
Site Pessoal: http://recologia.com.br/
Github: https://github.com/Squiercg
Lattes: http://lattes.cnpq.br/7355685961127056
_______________________________________________
R-br mailing list
[email protected]
<mailto:[email protected]>
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 Castro
Programa de Pós-Graduação em Meteorologia
Bolsista Laboratório de Agrometeorologia - Embrapa Clima
Temperado
Universidade Federal de Pelotas
_______________________________________________
R-br mailing list
[email protected] <mailto:[email protected]>
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. Ribas
Site Pessoal: http://recologia.com.br/
Github: https://github.com/Squiercg
Lattes: http://lattes.cnpq.br/7355685961127056
_______________________________________________
R-br mailing list
[email protected] <mailto:[email protected]>
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 Castro
Programa de Pós-Graduação em Meteorologia
Bolsista Laboratório de Agrometeorologia - Embrapa Clima Temperado
Universidade Federal de Pelotas
_______________________________________________
R-br mailing list
[email protected] <mailto:[email protected]>
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
[email protected]
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.