Converter arquivos RData em csv dentro de um loop

Olá Pessoal, Eu tenho, em um diretório, um conjunto de mais ou menos 30 arquivos RData que armazenam data frames. O que eu gostaria de fazer é escrever um scrip que lesse os nomes dos arquivos RData no referido diretorio e os exportasse no formato .csv. A abordagem que estou tentanto desenvolver é a seguinte: arquivos <- list.files() for(nomes in arquivos){ dframe <- load(nomes) load(nomes) write.csv2(????, file=paste(dframe, ".csv", sep=""), row.names=FALSE) rm(list=ls()) } O problema para o qual ainda não consegui vislumbrar uma solução é como usar o write.csv2() nesse contexto. Os arquivos RData tem nomes no seguinte padrão: "Emp_DETRAN_2009.2012fev.RData" e o data frame contido no arquivo tem nome "empDETRAN". Basicamente o que muda de um arquivo para o outro é o nome do do órgão. Possivelmente exista outra abordagem menos macarronica e mais direta ao ponto... Abs. -- Marcos F. Silva http://sites.google.com/site/marcosfs2006

Marcos, Se vc tem certeza de que cada RData contém somente um data.frame, acho que isso vai funcionar: arquivos <- list.files() arquivos <- grep(".*\\.RData$", arquivos, ignore.case=T, value=T) #pega só os arquivos .RData require(mgcv) for(nomes in arquivos){ dframe <- readRDS(nomes) write.csv2(dframe, file=paste(dframe, ".csv", sep=""), row.names=FALSE) rm(dframe) } Em 9 de abril de 2012 23:33, Marcos Silva <marcosfs2006@gmail.com> escreveu:
Olá Pessoal,
Eu tenho, em um diretório, um conjunto de mais ou menos 30 arquivos RData que armazenam data frames. O que eu gostaria de fazer é escrever um scrip que lesse os nomes dos arquivos RData no referido diretorio e os exportasse no formato .csv.
A abordagem que estou tentanto desenvolver é a seguinte:
arquivos <- list.files()
for(nomes in arquivos){
dframe <- load(nomes) load(nomes) write.csv2(????, file=paste(dframe, ".csv", sep=""), row.names=FALSE)
rm(list=ls()) }
O problema para o qual ainda não consegui vislumbrar uma solução é como usar o write.csv2() nesse contexto. Os arquivos RData tem nomes no seguinte padrão: "Emp_DETRAN_2009.2012fev.RData" e o data frame contido no arquivo tem nome "empDETRAN". Basicamente o que muda de um arquivo para o outro é o nome do do órgão.
Possivelmente exista outra abordagem menos macarronica e mais direta ao ponto...
Abs.
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006
_______________________________________________ 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.

Se eu quiser listar arquivos de outras extensões, como doc, ppt, ele também faz? Eu vi que o list.files() lista tudo, mas se eu quiser só algumas extensões? Marcos, Se vc tem certeza de que cada RData contém somente um data.frame, acho que isso vai funcionar: arquivos <- list.files() arquivos <- grep(".*\\.RData$", arquivos, ignore.case=T, value=T) #pega só os arquivos .RData require(mgcv) for(nomes in arquivos){ dframe <- readRDS(nomes) write.csv2(dframe, file=paste(dframe, ".csv", sep=""), row.names=FALSE) rm(dframe) } Em 9 de abril de 2012 23:33, Marcos Silva <marcosfs2006@gmail.com> escreveu: Olá Pessoal, Eu tenho, em um diretório, um conjunto de mais ou menos 30 arquivos RData que armazenam data frames. O que eu gostaria de fazer é escrever um scrip que lesse os nomes dos arquivos RData no referido diretorio e os exportasse no formato .csv. A abordagem que estou tentanto desenvolver é a seguinte: arquivos <- list.files() for(nomes in arquivos){ dframe <- load(nomes) load(nomes) write.csv2(????, file=paste(dframe, ".csv", sep=""), row.names=FALSE) rm(list=ls()) } O problema para o qual ainda não consegui vislumbrar uma solução é como usar o write.csv2() nesse contexto. Os arquivos RData tem nomes no seguinte padrão: "Emp_DETRAN_2009.2012fev.RData" e o data frame contido no arquivo tem nome "empDETRAN". Basicamente o que muda de um arquivo para o outro é o nome do do órgão. Possivelmente exista outra abordagem menos macarronica e mais direta ao ponto... .

veja a ajuda do comando, em particular detalhes sobre o argumento 'pattern'... adicionalmente, ao fazer uma pergunta associada a outro problema, crie um novo topico. b 2012/4/11 Mauro Sznelwar <sznelwar@uol.com.br>:
Se eu quiser listar arquivos de outras extensões, como doc, ppt, ele também faz? Eu vi que o list.files() lista tudo, mas se eu quiser só algumas extensões?
Marcos,
Se vc tem certeza de que cada RData contém somente um data.frame, acho que isso vai funcionar:
arquivos <- list.files() arquivos <- grep(".*\\.RData$", arquivos, ignore.case=T, value=T) #pega só os arquivos .RData require(mgcv) for(nomes in arquivos){
dframe <- readRDS(nomes) write.csv2(dframe, file=paste(dframe, ".csv", sep=""), row.names=FALSE) rm(dframe)
}
Em 9 de abril de 2012 23:33, Marcos Silva <marcosfs2006@gmail.com> escreveu:
Olá Pessoal,
Eu tenho, em um diretório, um conjunto de mais ou menos 30 arquivos RData que armazenam data frames. O que eu gostaria de fazer é escrever um scrip que lesse os nomes dos arquivos RData no referido diretorio e os exportasse no formato .csv.
A abordagem que estou tentanto desenvolver é a seguinte:
arquivos <- list.files()
for(nomes in arquivos){
dframe <- load(nomes) load(nomes) write.csv2(????, file=paste(dframe, ".csv", sep=""), row.names=FALSE)
rm(list=ls()) }
O problema para o qual ainda não consegui vislumbrar uma solução é como usar o write.csv2() nesse contexto. Os arquivos RData tem nomes no seguinte padrão: "Emp_DETRAN_2009.2012fev.RData" e o data frame contido no arquivo tem nome "empDETRAN". Basicamente o que muda de um arquivo para o outro é o nome do do órgão.
Possivelmente exista outra abordagem menos macarronica e mais direta ao ponto...
.
_______________________________________________ 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 (4)
-
Benilton Carvalho
-
Lucas Barbosa
-
Marcos Silva
-
Mauro Sznelwar