<div dir="ltr">Opa, talvez você possa tentar o seguinte:<div><br></div><div><br></div><div>Um exemplo, suponto que vc tenha 20 arquivos:</div><div><br></div><div>Quando voce da <span style="font-family:arial,sans-serif;font-size:13.3333330154419px">arquivos <- list.files(pattern="\\.dbf$"), você gostaria de ver algo como isso que fiz no vetor1 certo?</span><br><div><div><br></div><div>> vetor1<-paste("corte_estrada_aneis",1:20,".dbf",sep="")<br></div><div><div>> vetor1</div><div> [1] "corte_estrada_aneis1.dbf" "corte_estrada_aneis2.dbf" "corte_estrada_aneis3.dbf" </div><div> [4] "corte_estrada_aneis4.dbf" "corte_estrada_aneis5.dbf" "corte_estrada_aneis6.dbf" </div><div> [7] "corte_estrada_aneis7.dbf" "corte_estrada_aneis8.dbf" "corte_estrada_aneis9.dbf" </div><div>[10] "corte_estrada_aneis10.dbf" "corte_estrada_aneis11.dbf" "corte_estrada_aneis12.dbf"</div><div>[13] "corte_estrada_aneis13.dbf" "corte_estrada_aneis14.dbf" "corte_estrada_aneis15.dbf"</div><div>[16] "corte_estrada_aneis16.dbf" "corte_estrada_aneis17.dbf" "corte_estrada_aneis18.dbf"</div><div>[19] "corte_estrada_aneis19.dbf" "corte_estrada_aneis20.dbf"</div><div><br></div><div><br></div><div>Mas o que você ve na verdade é o que está no vetor 2, certo, porque ta tudo na ordem lexicografia,(Essa palavra é bonita né? Nem sei se escrevi certo, desculpa)</div><div><br></div><div>> vetor2<-sort(vetor1)</div><div>> vetor2</div><div> [1] "corte_estrada_aneis10.dbf" "corte_estrada_aneis11.dbf" "corte_estrada_aneis12.dbf"</div><div> [4] "corte_estrada_aneis13.dbf" "corte_estrada_aneis14.dbf" "corte_estrada_aneis15.dbf"</div><div> [7] "corte_estrada_aneis16.dbf" "corte_estrada_aneis17.dbf" "corte_estrada_aneis18.dbf"</div><div>[10] "corte_estrada_aneis19.dbf" "corte_estrada_aneis1.dbf" "corte_estrada_aneis20.dbf"</div><div>[13] "corte_estrada_aneis2.dbf" "corte_estrada_aneis3.dbf" "corte_estrada_aneis4.dbf" </div><div>[16] "corte_estrada_aneis5.dbf" "corte_estrada_aneis6.dbf" "corte_estrada_aneis7.dbf" </div><div>[19] "corte_estrada_aneis8.dbf" "corte_estrada_aneis9.dbf" </div><div><br></div><div>Mas beleza, você ta vendo o vetor 2 na saida do <span style="font-family:arial,sans-serif;font-size:13.3333330154419px">arquivos <- list.files(pattern="\\.dbf$"), quando da arquivos.</span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333330154419px">Uma possibilidade seria reordenar o seu arquivos, antes de fazer a leitura, da seguinte formula.</span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333330154419px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333330154419px">Crie um vetor de numeros, usando uma expressão regular para pegar somente os números, das string do arquivo, depois transforme em numero pro R entender:</span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333330154419px"><br></span></div><div><br></div><div>> numeros<-as.numeric(gsub("[a-z_.]", "\\1", vetor2))</div><div>> numeros</div><div> [1] 10 11 12 13 14 15 16 17 18 19 1 20 2 3 4 5 6 7 8 9</div><div>> vetor2</div><div> [1] "corte_estrada_aneis10.dbf" "corte_estrada_aneis11.dbf" "corte_estrada_aneis12.dbf"</div><div> [4] "corte_estrada_aneis13.dbf" "corte_estrada_aneis14.dbf" "corte_estrada_aneis15.dbf"</div><div> [7] "corte_estrada_aneis16.dbf" "corte_estrada_aneis17.dbf" "corte_estrada_aneis18.dbf"</div><div>[10] "corte_estrada_aneis19.dbf" "corte_estrada_aneis1.dbf" "corte_estrada_aneis20.dbf"</div><div>[13] "corte_estrada_aneis2.dbf" "corte_estrada_aneis3.dbf" "corte_estrada_aneis4.dbf" </div><div>[16] "corte_estrada_aneis5.dbf" "corte_estrada_aneis6.dbf" "corte_estrada_aneis7.dbf" </div><div>[19] "corte_estrada_aneis8.dbf" "corte_estrada_aneis9.dbf" </div><div><br></div><div><br></div><div>Veja que a numeração ta na ordem dos arquivos, agora ordene pelos numeros usando order, que ele vai te dar a ordem que você quer pros indices.</div><div>> order(numeros)</div><div> [1] 11 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 12</div><div>> numeros[order(numeros)]</div><div> [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20</div><div><br></div><div><br></div><div><br></div><div>Agora você aplica a ordem dos numeros no seu arquivos, que você pegou o ls do diretorio.</div><div>> vetor2[order(numeros)]</div><div> [1] "corte_estrada_aneis1.dbf" "corte_estrada_aneis2.dbf" "corte_estrada_aneis3.dbf" </div><div> [4] "corte_estrada_aneis4.dbf" "corte_estrada_aneis5.dbf" "corte_estrada_aneis6.dbf" </div><div> [7] "corte_estrada_aneis7.dbf" "corte_estrada_aneis8.dbf" "corte_estrada_aneis9.dbf" </div><div>[10] "corte_estrada_aneis10.dbf" "corte_estrada_aneis11.dbf" "corte_estrada_aneis12.dbf"</div><div>[13] "corte_estrada_aneis13.dbf" "corte_estrada_aneis14.dbf" "corte_estrada_aneis15.dbf"</div><div>[16] "corte_estrada_aneis16.dbf" "corte_estrada_aneis17.dbf" "corte_estrada_aneis18.dbf"</div><div>[19] "corte_estrada_aneis19.dbf" "corte_estrada_aneis20.dbf"</div><div>> </div></div></div></div><div><br></div><div>Ai você le tudo usando essa ordem</div><div><br></div><div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px">for (nome_arquivo in 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">nome_arquivo</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">Eu acho que isso deve funcionar. </div><div style="font-family:arial,sans-serif;font-size:13.3333330154419px">Bem espero ter mais ajudado que atrabalhado :)</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">Em 12 de novembro de 2014 03:08, 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">Prezados,<div><br></div><div>Estou com um problema ao ler arquivos .dbf no R. Abaixo segue a lógica que usei em meu código para fazer a leitura:<br><br>##########################################################################################<br><br><div><br></div><div>###########################################################################################</div><div>##comando para ler um arquivo ".dbf" ##</div><div>## ## </div><div>##library("foreign") ##</div><div>## ##</div><div>##read.dbf("I:/qgis_1/exercicio_buffer_L1/testes/teste_1/corte_estrada_aneis.dbf") ##</div><div>## ## </div><div>###########################################################################################</div><div>##</div><div>##Salvando tudo em forma de lista</div><div><br></div><div>library("foreign")</div><div><br></div><div>setwd("I:/qgis_1/exercicio_buffer_L1/testes/teste_1")</div><div><br></div><div>arquivos <- list.files(pattern="\\.dbf$")</div><div><br></div><div>x <- lapply(arquivos, read.dbf)</div><div><br></div><div>##Exportando os comprimentos de cada estrada cortada por um anel</div><div><br></div><div>for (i in 1:91){</div><div><br></div><div> y[[i]] <- x[[i]]</div><div> vector_length[i] <- sum(y[[i]][,2])</div><div><br></div><div> }</div><div><br></div><div>##########################################################################################</div><div><br></div><div>Assim como mostrado no exemplo acima estou lendo um arquivo chamado "<span style="font-size:12pt">corte_estrada_aneis.dbf", todavia possui um banco com 91 desses arquivos numerados de forma que seus nomes ficam, por exemplo: </span><span style="font-size:12pt">corte_estrada_aneis.1dbf, </span><span style="font-size:12pt">corte_estrada_aneis2.dbf, </span><span style="font-size:12pt">corte_estrada_aneis3.dbf, ... até finalmente </span><span style="font-size:12pt">corte_estrada_aneis91.dbf. O problema na leitura dos .dbf consiste que a lógica acima usada por mim faz com que a ordenação saia errada, ou seja, ele faz a leitura dos arquivos </span><span style="font-size:12pt">corte_estrada_aneis1.dbf, </span><span style="font-size:12pt">corte_estrada_aneis12.dbf, </span><span style="font-size:12pt">corte_estrada_aneis13.dbf e assim por diante. Uma tentativa minha, porém não muito bem sucedida foi a seguinte:<br></span><span style="font-size:12pt"><br>#########################################################################################</span></div><div><span style="font-size:12pt"><br></span></div><div>library("foreign")</div><div><br></div><div>for (i in 1:9){</div><div><br></div><div>g[i] <- read.dbf("I:/qgis_1/exercicio_buffer_L1/testes/teste_1/corte_estrada_aneis[i].dbf")</div><div><br></div><div> }</div><div><br></div><div>g</div><div><span style="font-size:12pt"><br></span></div><div><span style="font-size:12pt">#########################################################################################</span></div><div><span style="font-size:12pt"><br></span></div><div><span style="font-size:12pt">Mas como tudo esta contido em " " o índice [i] será lido literalmente. Peço ajuda aos colegas para poder solucinar este problema, seja com a minha lógica ou com alguma idéia diferente. </span></div><div><span style="font-size:12pt"><br></span></div><div><span style="font-size:12pt">Abraços a todos! </span></div><div><br></div>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></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>