Desculpa, David!
Estava lendo seu email junto com o do colega Romero. rsrs


On 06/15/2015 01:49 PM, Vinícius Lionel Mateus wrote:
Olá Romero,

Precisei fazer algo similar para uma avaliação de um curso, que me inscrevi no Coursera.
Estou rodando o programa para 322 arquivos.

Dá uma olhada:

pollutantmean <- function(directory, pollutant, id = 1:332) {
  ## 'directory' is a character vector of length 1 indicating
  ## the location of the CSV files

  ## 'pollutant' is a character vector of length 1 indicating
  ## the name of the pollutant for which we will calculate the
  ## mean; either "sulfate" or "nitrate".

  ## 'id' is an integer vector indicating the monitor ID numbers
  ## to be used

  ## Return the mean of the pollutant across all monitors list
  ## in the 'id' vector (ignoring NA values)
  ## NOTE: Do not round the result!

  files_full <- list.files("specdata", full.names = TRUE)
  files_full

#   summary(files_full)
  tmp <- vector(mode = "list", length = length(files_full))

  for (i in seq_along(files_full)) {
    tmp[[i]] <- read.csv(files_full[[i]])
  }

  output <- do.call(rbind, tmp)
#   str(output)

output_subset <- subset(output, output[, "ID"] %in% id) # subset by any value



  if (pollutant == "sulfate")  {
    mean(output_subset$sulfate, na.rm = TRUE)
  } else if  (pollutant == "nitrate")  {
    mean(output_subset$nitrate, na.rm = TRUE)
  } else {
    print("pollutant can only be nitrate or sulfate!")
  }
}

Acho que pode servir a ti!

Abs,
Vinícius


On 06/13/2015 04:56 PM, David Feitosa wrote:
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.

--
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

--
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

_______________________________________________
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.

Responder a