É mesmo, muito bem lembrado Fernando Toledo. Não sou usuário Windows e não me atentei para esse detalhe até você chamar a atenção.
Muito obrigado! On May 19 2020, at 11:12 pm, Fernando H Toledo por (R-br) <r-br@listas.c3sl.ufpr.br> wrote: > Colegas, Em todos SOs um path (caminho/para/o/meu/diretorio/) é definido com > / (forward slash), exceto o Windows que usa \ (backslash). Deve-se levar em > conta que \ "dentro de uma string" no R significa um "scape", assim tem-se > que por "\\" para ter o resultado esperado. att, FH On 5/19/20 7:44 PM, > Fernando Souza por (R-br) wrote: > Mauro > > Eu utilizo o linux. No linux o > edereço "~/Dowlnload/bancosex/" é o > mesmo que > "/home/fernando/Dowlnload/bancosex/" > ele informa o caminho para a pasta > "bancosex" > > no windows seria algo assim: > > C:\Users\Mauro\Downloads\bancosex > > Você pode clicar com o botão direito do > mouse sobre a pasta, ir em > propriedades e copiar o endereço > > > May 19 > 2020, at 9:26 pm, Mauro Sznelwar por (R-br) > wrote: > > Não consegui > rodar,alguém explica o motivo? > dir.create('~/Downloads/bancosex/') > > Warning message: > In dir.create("~/Downloads/bancosex/") : > não foi > possível criar o diretório > 'C:\Users\Mauro\Documents\Downloads\bancosex', > motivo 'No such > file or directory' > Uma pequena correção. > Considere esse > código aqui. > att > dir.create('~/Downloads/bancosex/') > > banco1=data.frame(Nome=c("Diogo","Patrícia"),Idade=c(42,40),Salario=c(5000,7000)) > > write.csv2(banco1,file='~/Downloads/bancosex/banco1.csv',row.names=FALSE) > > > banco2=data.frame(Nome=c("João","Alexandre"),Idade=c(41,40),Salario=c(8000,9000)) > > write.csv2(banco2,file='~/Downloads/bancosex/banco2.csv',row.names=FALSE) > > > banco3=data.frame(Nome=c("Angélica","Nádia"),Idade=c(40,38),Salario=c(9500,7500)) > > write.csv2(banco3,file='~/Downloads/bancosex/banco3.csv',row.names=FALSE) > > importaBD <-function(dir,nameBD){ > lista<- vector(mode = "list", length > =length(nameBD)) > setwd(dir) > for(i in 1:length(nameBD)){ > > lista[i]<-list.files(path=dir,pattern=nameBD[i]) > } > > arquivos<-lapply(lista, function(x) read.csv2(x, header=TRUE, > sep=";")) > > do.call("rbind",arquivos) > } > Exemplo de uso > > importaBD(dir="~/Downloads/bancosex/",nameBD=c("banco1.csv","banco2.csv")) > > Nome Idade Salario > 1 Diogo 42 5000 > 2 Patrícia 40 7000 > 3 João 41 8000 > > 4 Alexandre 40 9000 > > > > importaBD(dir="~/Downloads/bancosex/",nameBD=c("banco3.csv","banco2.csv")) > > Nome Idade Salario > 1 Angélica 40 9500 > 2 Nádia 38 7500 > 3 João 41 8000 > > 4 Alexandre 40 9000 > On May 18 2020, at 11:24 pm, Fernando Souza > wrote: > > > Diogo, > Segue minha solução a seu problema. Faça as adaptações > > necessárias. > Fiz algumas alterações em seu código para tornar a saídas mais > > legíveis. > dir.create('~/Downloads/bancosex/') > > banco1=data.frame(Nome=c("Diogo","Patrícia"),Idade=c(42,40),Salario=c(5000,7000)) > > write.csv2(banco1,file='~/Downloads/bancosex/banco1.csv',row.names=FALSE) > > > banco2=data.frame(Nome=c("João","Alexandre"),Idade=c(41,40),Salario=c(8000,9000)) > > write.csv2(banco2,file='~/Downloads/bancosex/banco2.csv',row.names=FALSE) > > > banco3=data.frame(Nome=c("Angélica","Nádia"),Idade=c(40,38),Salario=c(9500,7500)) > > write.csv2(banco3,file='~/Downloads/bancosex/banco3.csv',row.names=FALSE) > > ## dir= uma string com o path para o diretório > ## nameBD= um vetor string > com os nomes completos dos arquivos > (p.ex "meuarquivo.csv") > > importaBD > <-function(dir, nameBD){ > > lista<- vector(mode = "list", length > =length(nameBD)) > setwd(dir) > for(i in 1:length(nameBD)){ > > > lista[[i]]<-list.files(path=dir,pattern=nameBD) > } > > > arquivos<-lapply(lista, function(x) read.csv2(x, > header=TRUE, sep=";")) > > > dados<-do.call("rbind",arquivos) > > print(dados) > } > > > importaBD(dir="~/Downloads/bancosex/",nameBD=c("banco1.csv","banco2.csv")) > > Nome Idade Salario > 1 Diogo 42 5000 > 2 Patrícia 40 7000 > 3 Diogo 42 5000 > > 4 Patrícia 40 7000 > att > > Em seg., 18 de mai. de 2020 às 19:39, Diogo > Jerônimo por > (R-br) > <../../../undefined//compose?to=r-br@listas.c3sl.ufpr.br>> > escreveu: > > Oi > Daniel, boa noite. > Esse exemplo eu dei para ilustrar, mas o meu caso é de > > bases de dados trimestrais em *.csv, onde cada base > trimestral tem por > volta de 100 Megas, bases que vem desde > 2006 até 2020!!! > Fora o tamanho, > essas bases podem ter variáveis adicionais > solicitadas pelo gestor ao longo > dos anos (códigos > adicionais, dado de alteração de um serviço...), e isso > > cria conflito se eu juntar as bases com número de colunas > diferentes pelo > "rbind". > No meu caso, um período em que tenho dados uniformes (sem > > alteração do número de colunas) é entre 2017 e 2018, e > nesse caso, não > posso apagar e nem copiar as outras bases > (por motivos de segurança). > Assim, eu teria de escolher > somente as bases dos trimestres dos anos que me > interessam > (2017 trim1,...,2018 trim4) para processar a análise > > estatística de interesse. > Não sei se consegui ser claro, mas é isso. > > Obrigado!!! > /Diogo Jerônimo/ > /Bacharel em Ciências Estatísticas - > ENCE/IBGE/ > /Mestre em Metrologia - PUC-Rio/PósMQI/ > /CONRE: 8514 - SÉRIE > A/ > Em segunda-feira, 18 de maio de 2020 18:14:38 BRT, Daniel > Guimarães > Tiezzi por (R-br) <../../../undefined//compose?to=r-br@listas.c3sl.ufpr.br>> > > escreveu: > Se VC sabe qual os arquivos VC precisa let, certo? Deixe > > somente eles no seu objeto listas. > Daniel > > On Mon, 18 May 2020, 18:11 > Mauro Sznelwar por (R-br), > > <../../../undefined//compose?to=r-br@listas.c3sl.ufpr.br>> > wrote: > > Tem o > data set para rodar? > > > Lista, bom dia e boa semana!!! Criei o > "reproduzível" > para explicar a dúvida. Nesse exemplo, de uma pasta, > > identifiquei arquivos "*.csv", e depois apliquei o > *lapply* e o *do.call* > para importar e juntar esses > bancos: > > dir.create('c:/users/diogo/desktop/bancosex/') > > banco1=data.frame(cbind(c("Diogo","Patrícia"),c(42,40),c(5000,7000))) > > write.csv2(banco1,file='c:/users/diogo/desktop/bancosex/banco1.csv',row.names=FALSE) > > banco2=data.frame(cbind(c("João","Alexandre"),c(41,40),c(8000,9000))) > > write.csv2(banco2,file='c:/users/diogo/desktop/bancosex/banco2.csv',row.names=FALSE) > > banco3=data.frame(cbind(c("Angélica","Nádia"),c(40,38),c(9500,7500))) > > write.csv2(banco3,file='c:/users/diogo/desktop/bancosex/banco3.csv',row.names=FALSE) > > setwd('c:/users/diogo/desktop/bancosex/') > lista<-list.files() > > arquivos<-lapply(lista, function(x) read.csv2(x, > header=TRUE, sep=";")) > > dados<-do.call("rbind", arquivos) > Meu problema: esse código vai "pegar" > TODOS os bancos > da pasta antes de importar e juntar. Eu gostaria de > pegar > somente PARTE desses bancos (ex: apenas banco1 e > banco2, apenas banco2 e > banco3...). > Alguém saberia como fazer isso? > Obrigado!!! > /Diogo > Jerônimo/ > /Bacharel em Ciências Estatísticas - ENCE/IBGE/ > /Mestre em > Metrologia - PUC-Rio/PósMQI/ > /CONRE: 8514 - SÉRIE A/ > > _______________________________________________ > > _______________________________________________ > R-br mailing list > > R-br@listas.c3sl.ufpr.br > > <../../../undefined//compose?to=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 > > <../../../undefined//compose?to=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 > > <../../../undefined//compose?to=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. > > > > -- > > Lattes: http://lattes.cnpq.br/6519538815038307 > > > Blog: https://producaoanimalcomr.wordpress.com/ > > > ========================================== > > > _______________________________________________ > 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. > > > _______________________________________________ > 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.
_______________________________________________ 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.