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) <[email protected]> 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
    <[email protected]> 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) <[email protected]
        <../../../undefined//[email protected]>>
        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) <[email protected]
            <../../../undefined//[email protected]>>
            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),
            <[email protected]
            <../../../undefined//[email protected]>>
            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
                [email protected]
                <../../../undefined//[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]
            <../../../undefined//[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]
            <../../../undefined//[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.



        --

        Lattes: http://lattes.cnpq.br/6519538815038307
        
<https://link.getmailspring.com/link/[email protected]/0?redirect=https%3A%2F%2Flink.getmailspring.com%2Flink%2FCFEBFDF1-5D91-411C-A929-6DE1BCA22D7F%40getmailspring.com%2F0%3Fredirect%3Dhttp%253A%252F%252Flattes.cnpq.br%252F6519538815038307%26recipient%3Dci1ickBsaXN0YXMuYzNzbC51ZnByLmJy&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy>
        Blog: https://producaoanimalcomr.wordpress.com/
        
<https://link.getmailspring.com/link/[email protected]/1?redirect=https%3A%2F%2Flink.getmailspring.com%2Flink%2FCFEBFDF1-5D91-411C-A929-6DE1BCA22D7F%40getmailspring.com%2F1%3Fredirect%3Dhttps%253A%252F%252Fproducaoanimalcomr.wordpress.com%252F%26recipient%3Dci1ickBsaXN0YXMuYzNzbC51ZnByLmJy&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy>
        ==========================================

    _______________________________________________
    R-br mailing list
    [email protected]
    https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
    
<https://link.getmailspring.com/link/[email protected]/2?redirect=https%3A%2F%2Flistas.inf.ufpr.br%2Fcgi-bin%2Fmailman%2Flistinfo%2Fr-br&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy>
    Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia
    
<https://link.getmailspring.com/link/[email protected]/3?redirect=http%3A%2F%2Fwww.leg.ufpr.br%2Fr-br-guia&recipient=ci1ickBsaXN0YXMuYzNzbC51ZnByLmJy>)
    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.


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

_______________________________________________
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