<div dir="ltr">Opa, não prestei atenção nessa hora, você pode tentar o seguinte:<div><br></div><div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px">for (i in 1:length(arquivos)){</div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px"><br></div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px">g[i] <- read.dbf(paste("I:/qgis_1/exercicio_buffer_L1/testes/teste_1/",<span style="font-size:13.3333330154419px">arquivos[i]</span>,sep=""))</div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px"><br></div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px"> }</div></div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px"><br></div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px">Agora com o paste você ta construindo o nome do arquivo, mas ta acessando o arquivos pelo índice, e usando esse índice i para controlar onde vai guardar também.</div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px"><br></div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px">Desculpe mas eu não estou testando o código aqui, mas algo nessa linha deve funcionar, acredito eu.</div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px">Ai você tem que iniciar esse vetor g, com a classe que você vai guardar.</div></div><div class="gmail_extra"><br><div class="gmail_quote">Em 16 de novembro de 2014 03:14, Paulo Pimenta <span dir="ltr"><<a href="mailto:paulopimenta6@hotmail.com" target="_blank">paulopimenta6@hotmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div dir="ltr">Houve um problema na última parte com o looping. Minha dificuldade no atual momento é transformar os arquivos lidos em algo do qual se acessar os dados em seu interior.<br><br>no looping há a variação de g[i] em relação ao que?<span class=""><br><br>r (nome_arquivo in arquivos){<br>> <br>> g[i] <- read.dbf(paste("I:/qgis_1/exercicio_buffer_L1/testes/teste_1/",<br>> nome_arquivo,sep=""))<br>> <br>> }<div><br></div></span><div>Não entendi esta parte, pois para mim o comando for deveria em seu interior ter algo numérico, mas mesmo fazendo o teste:<br><br>r (i in 1:20){<br>> <br>> g[i] <- read.dbf(paste("I:/qgis_1/exercicio_buffer_L1/testes/teste_1/nome_arquivo" ,i , ".dbf", sep=""))<br>> <br>> }<br><br>nada dá certo.<br><br>Abraços.<span class=""><br><br>Paulo Henrique de A. S. Pimenta.<div><br></div><div>Graduando em Meteorologia (Bacharelado) - IAG/USP.<br>Fone: <a href="tel:%2B5511981318435" value="+5511981318435" target="_blank">+5511981318435</a>.</div><br><br></span><div><hr><div><div class="h5"><div dir="ltr"><div><br></div><div>> Message: 2<br>> Date: Thu, 13 Nov 2014 10:53:21 -0300<br>> From: Augusto Ribas <<a href="mailto:ribas.aca@gmail.com" target="_blank">ribas.aca@gmail.com</a>><br>> To: <a href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a><br>> Subject: Re: [R-br] Problemas lendo .dbf no R<br>> Message-ID:<br>> <<a href="mailto:CACMkfRxzSNWYuQcfjAExR5DA5Z8XdW1EZE%2Bn19%2BYO08H%2BRv1gg@mail.gmail.com" target="_blank">CACMkfRxzSNWYuQcfjAExR5DA5Z8XdW1EZE+n19+YO08H+Rv1gg@mail.gmail.com</a>><br>> Content-Type: text/plain; charset="utf-8"<br>> <br>> Opa, talvez você possa tentar o seguinte:<br>> <br>> <br>> Um exemplo, suponto que vc tenha 20 arquivos:<br>> <br>> Quando voce da arquivos <- list.files(pattern="\\.dbf$"), você gostaria de<br>> ver algo como isso que fiz no vetor1 certo?<br>> <br>> > vetor1<-paste("corte_estrada_aneis",1:20,".dbf",sep="")<br>> > vetor1<br>> [1] "corte_estrada_aneis1.dbf" "corte_estrada_aneis2.dbf"<br>> "corte_estrada_aneis3.dbf"<br>> [4] "corte_estrada_aneis4.dbf" "corte_estrada_aneis5.dbf"<br>> "corte_estrada_aneis6.dbf"<br>> [7] "corte_estrada_aneis7.dbf" "corte_estrada_aneis8.dbf"<br>> "corte_estrada_aneis9.dbf"<br>> [10] "corte_estrada_aneis10.dbf" "corte_estrada_aneis11.dbf"<br>> "corte_estrada_aneis12.dbf"<br>> [13] "corte_estrada_aneis13.dbf" "corte_estrada_aneis14.dbf"<br>> "corte_estrada_aneis15.dbf"<br>> [16] "corte_estrada_aneis16.dbf" "corte_estrada_aneis17.dbf"<br>> "corte_estrada_aneis18.dbf"<br>> [19] "corte_estrada_aneis19.dbf" "corte_estrada_aneis20.dbf"<br>> <br>> <br>> Mas o que você ve na verdade é o que está no vetor 2, certo, porque ta tudo<br>> na ordem lexicografia,(Essa palavra é bonita né? Nem sei se escrevi certo,<br>> desculpa)<br>> <br>> > vetor2<-sort(vetor1)<br>> > vetor2<br>> [1] "corte_estrada_aneis10.dbf" "corte_estrada_aneis11.dbf"<br>> "corte_estrada_aneis12.dbf"<br>> [4] "corte_estrada_aneis13.dbf" "corte_estrada_aneis14.dbf"<br>> "corte_estrada_aneis15.dbf"<br>> [7] "corte_estrada_aneis16.dbf" "corte_estrada_aneis17.dbf"<br>> "corte_estrada_aneis18.dbf"<br>> [10] "corte_estrada_aneis19.dbf" "corte_estrada_aneis1.dbf"<br>> "corte_estrada_aneis20.dbf"<br>> [13] "corte_estrada_aneis2.dbf" "corte_estrada_aneis3.dbf"<br>> "corte_estrada_aneis4.dbf"<br>> [16] "corte_estrada_aneis5.dbf" "corte_estrada_aneis6.dbf"<br>> "corte_estrada_aneis7.dbf"<br>> [19] "corte_estrada_aneis8.dbf" "corte_estrada_aneis9.dbf"<br>> <br>> Mas beleza, você ta vendo o vetor 2 na saida do arquivos <-<br>> list.files(pattern="\\.dbf$"), quando da arquivos.<br>> Uma possibilidade seria reordenar o seu arquivos, antes de fazer a leitura,<br>> da seguinte formula.<br>> <br>> Crie um vetor de numeros, usando uma expressão regular para pegar somente<br>> os números, das string do arquivo, depois transforme em numero pro R<br>> entender:<br>> <br>> <br>> > numeros<-as.numeric(gsub("[a-z_.]", "\\1", vetor2))<br>> > numeros<br>> [1] 10 11 12 13 14 15 16 17 18 19 1 20 2 3 4 5 6 7 8 9<br>> > vetor2<br>> [1] "corte_estrada_aneis10.dbf" "corte_estrada_aneis11.dbf"<br>> "corte_estrada_aneis12.dbf"<br>> [4] "corte_estrada_aneis13.dbf" "corte_estrada_aneis14.dbf"<br>> "corte_estrada_aneis15.dbf"<br>> [7] "corte_estrada_aneis16.dbf" "corte_estrada_aneis17.dbf"<br>> "corte_estrada_aneis18.dbf"<br>> [10] "corte_estrada_aneis19.dbf" "corte_estrada_aneis1.dbf"<br>> "corte_estrada_aneis20.dbf"<br>> [13] "corte_estrada_aneis2.dbf" "corte_estrada_aneis3.dbf"<br>> "corte_estrada_aneis4.dbf"<br>> [16] "corte_estrada_aneis5.dbf" "corte_estrada_aneis6.dbf"<br>> "corte_estrada_aneis7.dbf"<br>> [19] "corte_estrada_aneis8.dbf" "corte_estrada_aneis9.dbf"<br>> <br>> <br>> Veja que a numeração ta na ordem dos arquivos, agora ordene pelos numeros<br>> usando order, que ele vai te dar a ordem que você quer pros indices.<br>> > order(numeros)<br>> [1] 11 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 12<br>> > numeros[order(numeros)]<br>> [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20<br>> <br>> <br>> <br>> Agora você aplica a ordem dos numeros no seu arquivos, que você pegou o ls<br>> do diretorio.<br>> > vetor2[order(numeros)]<br>> [1] "corte_estrada_aneis1.dbf" "corte_estrada_aneis2.dbf"<br>> "corte_estrada_aneis3.dbf"<br>> [4] "corte_estrada_aneis4.dbf" "corte_estrada_aneis5.dbf"<br>> "corte_estrada_aneis6.dbf"<br>> [7] "corte_estrada_aneis7.dbf" "corte_estrada_aneis8.dbf"<br>> "corte_estrada_aneis9.dbf"<br>> [10] "corte_estrada_aneis10.dbf" "corte_estrada_aneis11.dbf"<br>> "corte_estrada_aneis12.dbf"<br>> [13] "corte_estrada_aneis13.dbf" "corte_estrada_aneis14.dbf"<br>> "corte_estrada_aneis15.dbf"<br>> [16] "corte_estrada_aneis16.dbf" "corte_estrada_aneis17.dbf"<br>> "corte_estrada_aneis18.dbf"<br>> [19] "corte_estrada_aneis19.dbf" "corte_estrada_aneis20.dbf"<br>> ><br>> <br>> Ai você le tudo usando essa ordem<br>> <br>> for (nome_arquivo in arquivos){<br>> <br>> g[i] <- read.dbf(paste("I:/qgis_1/exercicio_buffer_L1/testes/teste_1/",<br>> nome_arquivo,sep=""))<br>> <br>> }<br>> <br>> Eu acho que isso deve funcionar.<br>> Bem espero ter mais ajudado que atrabalhado :)<br>> <br>> <br>> <br>> Em 12 de novembro de 2014 03:08, Paulo Pimenta <<a href="mailto:paulopimenta6@hotmail.com" target="_blank">paulopimenta6@hotmail.com</a>><br>> escreveu:<br>> <br>> > Prezados,<br>> ><br>> > Estou com um problema ao ler arquivos .dbf no R. Abaixo segue a lógica que<br>> > usei em meu código para fazer a leitura:<br>> ><br>> ><br>> > ##########################################################################################<br>> ><br>> ><br>> ><br>> > ###########################################################################################<br>> > ##comando para ler um arquivo ".dbf"<br>> ><br>> > ##<br>> > ##<br>> ><br>> > ##<br>> > ##library("foreign")<br>> ><br>> > ##<br>> > ##<br>> ><br>> > ##<br>> > ##read.dbf("I:/qgis_1/exercicio_buffer_L1/testes/teste_1/corte_estrada_aneis.dbf")<br>> > ##<br>> > ##<br>> ><br>> > ##<br>> ><br>> > ###########################################################################################<br>> > ##<br>> > ##Salvando tudo em forma de lista<br>> ><br>> > library("foreign")<br>> ><br>> > setwd("I:/qgis_1/exercicio_buffer_L1/testes/teste_1")<br>> ><br>> > arquivos <- list.files(pattern="\\.dbf$")<br>> ><br>> > x <- lapply(arquivos, read.dbf)<br>> ><br>> > ##Exportando os comprimentos de cada estrada cortada por um anel<br>> ><br>> > for (i in 1:91){<br>> ><br>> > y[[i]] <- x[[i]]<br>> > vector_length[i] <- sum(y[[i]][,2])<br>> ><br>> > }<br>> ><br>> ><br>> > ##########################################################################################<br>> ><br>> > Assim como mostrado no exemplo acima estou lendo um arquivo chamado "corte_estrada_aneis.dbf",<br>> > todavia possui um banco com 91 desses arquivos numerados de forma que seus<br>> > nomes ficam, por exemplo: corte_estrada_aneis.1dbf,<br>> > corte_estrada_aneis2.dbf, corte_estrada_aneis3.dbf, ... até finalmente corte_estrada_aneis91.dbf.<br>> > O problema na leitura dos .dbf consiste que a lógica acima usada por mim<br>> > faz com que a ordenação saia errada, ou seja, ele faz a leitura dos<br>> > arquivos corte_estrada_aneis1.dbf, corte_estrada_aneis12.dbf, corte_estrada_aneis13.dbf<br>> > e assim por diante. Uma tentativa minha, porém não muito bem sucedida foi a<br>> > seguinte:<br>> ><br>> ><br>> > #########################################################################################<br>> ><br>> > library("foreign")<br>> ><br>> > for (i in 1:9){<br>> ><br>> > g[i] <-<br>> > read.dbf("I:/qgis_1/exercicio_buffer_L1/testes/teste_1/corte_estrada_aneis[i].dbf")<br>> ><br>> > }<br>> ><br>> > g<br>> ><br>> ><br>> > #########################################################################################<br>> ><br>> > Mas como tudo esta contido em " " o índice [i] será lido literalmente.<br>> > Peço ajuda aos colegas para poder solucinar este problema, seja com a minha<br>> > lógica ou com alguma idéia diferente.<br>> ><br>> > Abraços a todos!<br>> ><br>> > Paulo Henrique de A. S. Pimenta.<br>> ><br>> > Graduando em Meteorologia (Bacharelado) - IAG/USP.<br>> > Fone: <a href="tel:%2B5511981318435" value="+5511981318435" target="_blank">+5511981318435</a>.<br>> ><br>> > _______________________________________________<br>> > R-br mailing list<br>> > <a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>> > <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>> > Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça<br>> > código mínimo reproduzível.<br>> ><br>> <br>> <br>> <br>> -- <br>> Grato<br>> Augusto C. A. Ribas<br>> <br>> Site Pessoal: <a href="http://recologia.com.br/" target="_blank">http://recologia.com.br/</a> <<a href="http://augustoribas.heliohost.org" target="_blank">http://augustoribas.heliohost.org</a>><br>> Github: <a href="https://github.com/Squiercg" target="_blank">https://github.com/Squiercg</a><br>> Lattes: <a href="http://lattes.cnpq.br/7355685961127056" target="_blank">http://lattes.cnpq.br/7355685961127056</a><br>> -------------- Próxima Parte ----------<br>> Um anexo em HTML foi limpo...<br>> URL: <<a href="http://listas.inf.ufpr.br/pipermail/r-br/attachments/20141113/eaa31741/attachment-0001.html" target="_blank">http://listas.inf.ufpr.br/pipermail/r-br/attachments/20141113/eaa31741/attachment-0001.html</a>><br>> <br>> ------------------------------<br>> <br>> Subject: Legenda do Digest<br>> <br>> _______________________________________________<br>> R-br mailing list<br>> <a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>> <br>> <br>> ------------------------------<br>> <br>> Fim da Digest R-br, volume 47, assunto 14<br>> *****************************************<br></div> </div></div></div></div></div> </div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div>Grato<br>Augusto C. A. Ribas</div>
<div> </div>
<div>Site Pessoal: <a href="http://recologia.com.br/" target="_blank">http://recologia.com.br/</a><a href="http://augustoribas.heliohost.org" target="_blank"></a></div><div>Github: <a href="https://github.com/Squiercg" target="_blank">https://github.com/Squiercg</a></div>
<div>Lattes: <a href="http://lattes.cnpq.br/7355685961127056" target="_blank">http://lattes.cnpq.br/7355685961127056</a><br></div></div></div>
</div>