Loop para carregar bases

Oi pessoal, Recebo vários arquivos e preciso uni-los no R. Atualmente faço da seguinte forma: total = rbind(read.csv("base_1.csv", sep=";"), read.csv("base_2.csv", sep=";"), read.csv("base_3.csv", sep=";"), read.csv("base_4.csv", sep=";"), read.csv("base_5.csv", sep=";") ) Acontece que recebo esses arquivos semanalmente e a quantidade de arquivo varia (25 a 50), Alguém sabe como posso criar um 'for' que declare a quantidade de arquivo o R faz esse loop? *Att,Gerson R. Primo Jr*

Olá; Se entendi bem, no lugar de "base_x.csv", pode colocar um loop com paste("base_",i,".csv"), sendo *i *o fator de iteração do loop. Abs ========================================== Ricardo Ribeiro de Castro Solar (Curriculum Vitoe<http://lattes.cnpq.br/9924177207371692> ) PPG em Entomologia - UFV (Doutorado) Visit my blog! <http://photographyandconservation.wordpress.com/> / Rede Amazônia Sustentável <http://www.redeamazoniasustentavel.org> Skype: rrsolar Universidade Federal de Viçosa ========================================== 2014-03-10 14:06 GMT-03:00 Gerson R. Primo Jr <gersonprimo@gmail.com>:
Oi pessoal,
Recebo vários arquivos e preciso uni-los no R. Atualmente faço da seguinte forma:
total = rbind(read.csv("base_1.csv", sep=";"), read.csv("base_2.csv", sep=";"), read.csv("base_3.csv", sep=";"), read.csv("base_4.csv", sep=";"), read.csv("base_5.csv", sep=";") )
Acontece que recebo esses arquivos semanalmente e a quantidade de arquivo varia (25 a 50), Alguém sabe como posso criar um 'for' que declare a quantidade de arquivo o R faz esse loop?
*Att, Gerson R. Primo Jr*
_______________________________________________ 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.

Eu não uso loop, mas acho que isso o ajudaria. # Importanto dados import_files <- function(){ folder <- "Dados semanais csv" files <- list.files(folder, pattern = ".csv") files.names <- gsub(".csv", "", files) file.read <- function(file.name){ read.csv(paste("./", folder,"/", file.name, ".csv", sep =""), sep = ";", header=TRUE, encoding = "latin1") } list.files <- lapply(files.names, function(file.name){ file <- file.read(file.name) }) names(list.files)[1:length(list.files)] <- gsub("_PA", "", files.names) return(list.files) } temp_list_file <- import_files() Att. 2014-03-10 15:16 GMT-03:00 Ricardo Solar <rrsolar@gmail.com>:
Olá;
Se entendi bem, no lugar de "base_x.csv", pode colocar um loop com paste("base_",i,".csv"), sendo *i *o fator de iteração do loop.
Abs
========================================== Ricardo Ribeiro de Castro Solar (Curriculum Vitoe<http://lattes.cnpq.br/9924177207371692> ) PPG em Entomologia - UFV (Doutorado) Visit my blog! <http://photographyandconservation.wordpress.com/> / Rede Amazônia Sustentável <http://www.redeamazoniasustentavel.org> Skype: rrsolar Universidade Federal de Viçosa ==========================================
2014-03-10 14:06 GMT-03:00 Gerson R. Primo Jr <gersonprimo@gmail.com>:
Oi pessoal,
Recebo vários arquivos e preciso uni-los no R. Atualmente faço da seguinte forma:
total = rbind(read.csv("base_1.csv", sep=";"), read.csv("base_2.csv", sep=";"), read.csv("base_3.csv", sep=";"), read.csv("base_4.csv", sep=";"), read.csv("base_5.csv", sep=";") )
Acontece que recebo esses arquivos semanalmente e a quantidade de arquivo varia (25 a 50), Alguém sabe como posso criar um 'for' que declare a quantidade de arquivo o R faz esse loop?
*Att, Gerson R. Primo Jr*
_______________________________________________ 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.
-- Alisson Lucrecio da Costa

vc vai precisar carregar o pacote stringr library(stringr) 2014-03-10 15:20 GMT-03:00 Alisson Lucrecio <alissonluc@gmail.com>:
Eu não uso loop, mas acho que isso o ajudaria.
# Importanto dados
import_files <- function(){ folder <- "Dados semanais csv" files <- list.files(folder, pattern = ".csv") files.names <- gsub(".csv", "", files)
file.read <- function(file.name){ read.csv(paste("./", folder,"/", file.name, ".csv", sep =""), sep = ";", header=TRUE, encoding = "latin1") }
list.files <- lapply(files.names, function(file.name){ file <- file.read(file.name) }) names(list.files)[1:length(list.files)] <- gsub("_PA", "", files.names) return(list.files) }
temp_list_file <- import_files()
Att.
2014-03-10 15:16 GMT-03:00 Ricardo Solar <rrsolar@gmail.com>:
Olá;
Se entendi bem, no lugar de "base_x.csv", pode colocar um loop com paste("base_",i,".csv"), sendo *i *o fator de iteração do loop.
Abs
========================================== Ricardo Ribeiro de Castro Solar (Curriculum Vitoe<http://lattes.cnpq.br/9924177207371692> ) PPG em Entomologia - UFV (Doutorado) Visit my blog! <http://photographyandconservation.wordpress.com/> / Rede Amazônia Sustentável <http://www.redeamazoniasustentavel.org> Skype: rrsolar Universidade Federal de Viçosa ==========================================
2014-03-10 14:06 GMT-03:00 Gerson R. Primo Jr <gersonprimo@gmail.com>:
Oi pessoal,
Recebo vários arquivos e preciso uni-los no R. Atualmente faço da seguinte forma:
total = rbind(read.csv("base_1.csv", sep=";"), read.csv("base_2.csv", sep=";"), read.csv("base_3.csv", sep=";"), read.csv("base_4.csv", sep=";"), read.csv("base_5.csv", sep=";") )
Acontece que recebo esses arquivos semanalmente e a quantidade de arquivo varia (25 a 50), Alguém sabe como posso criar um 'for' que declare a quantidade de arquivo o R faz esse loop?
*Att, Gerson R. Primo Jr*
_______________________________________________ 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.
-- Alisson Lucrecio da Costa
-- Alisson Lucrecio da Costa

Senhores, boa tarde! Mais uma sugestão... ### <code r> setwd('C:/LAB/Temp') ### local com arquivos a serem unidos lista <- grep('.*csv', tolower(dir()), value=T) for (i in 1:length(lista)) { tmp <- read.table(lista[i], head=T) if (i==1) arq <- tmp else arq <- rbind(arq, tmp) } arq ### </code> Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]

Testei as 3 sugestões e todas funcionaram :) :) Obrigado pessoal. *Att,Gerson R. Primo Jr* 2014-03-10 17:28 GMT-03:00 Éder Comunello <comunello.eder@gmail.com>:
Senhores, boa tarde!
Mais uma sugestão...
### <code r> setwd('C:/LAB/Temp') ### local com arquivos a serem unidos lista <- grep('.*csv', tolower(dir()), value=T) for (i in 1:length(lista)) { tmp <- read.table(lista[i], head=T) if (i==1) arq <- tmp else arq <- rbind(arq, tmp) } arq ### </code>
Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]
_______________________________________________ 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.

fns = paste('base_', 1:25, '.csv', sep='') total = do.call(rbind, lapply(fns, read.csv, sep=';')) Em 10 de março de 2014 15:16, Ricardo Solar <rrsolar@gmail.com> escreveu:
Olá;
Se entendi bem, no lugar de "base_x.csv", pode colocar um loop com paste("base_",i,".csv"), sendo *i *o fator de iteração do loop.
Abs
========================================== Ricardo Ribeiro de Castro Solar (Curriculum Vitoe<http://lattes.cnpq.br/9924177207371692> ) PPG em Entomologia - UFV (Doutorado) Visit my blog! <http://photographyandconservation.wordpress.com/> / Rede Amazônia Sustentável <http://www.redeamazoniasustentavel.org> Skype: rrsolar Universidade Federal de Viçosa ==========================================
2014-03-10 14:06 GMT-03:00 Gerson R. Primo Jr <gersonprimo@gmail.com>:
Oi pessoal,
Recebo vários arquivos e preciso uni-los no R. Atualmente faço da seguinte forma:
total = rbind(read.csv("base_1.csv", sep=";"), read.csv("base_2.csv", sep=";"), read.csv("base_3.csv", sep=";"), read.csv("base_4.csv", sep=";"), read.csv("base_5.csv", sep=";") )
Acontece que recebo esses arquivos semanalmente e a quantidade de arquivo varia (25 a 50), Alguém sabe como posso criar um 'for' que declare a quantidade de arquivo o R faz esse loop?
*Att, Gerson R. Primo Jr*
_______________________________________________ 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.
participantes (5)
-
Alisson Lucrecio
-
Benilton Carvalho
-
Gerson R. Primo Jr
-
Ricardo Solar
-
Éder Comunello