Pra criar um vetor com todos possiveis valores, tu pode usar expand.grid().
Se eu entendi certo, isso deve bastar:
apply(expand.grid('MCD12Q1.A', 2001:2011, 'h', 10:14, 'v',
sprintf('%02.0f', 8:13), '.hdf'), 1, paste, collapse='')2013/3/19 Leandro Marino <[email protected]> > Thiago > > A função dir lista todos os arquivos de um diretório. Logo vc pode montar > um vetor com os nomes de todos os arquivos e chegar com o dir(). O que > estiver no primeiro e não estiver no segundo é o que você precisa baixar > > Enviado de um dispositivo móvel. > Sent from a mobile device. > Em 19/03/2013 18:51, "Thiago V. dos Santos" <[email protected]> > escreveu: > > Elias, >> >> Obrigado pela dica, mas... Você poderia elaborá-la, por favor? >> >> Obrigado, >> Thiago. >> >> >> ----- Original Message ----- >> From: Elias Teixeira Krainski <[email protected]> >> To: [email protected] >> Cc: >> Sent: Tuesday, March 19, 2013 4:07 PM >> Subject: Re: [R-br] Como listar arquivos faltantes usando R >> >> Em problema similar ao seu eu faço uma tabela >> em R com ano nas linhas e meses nas colunas >> >> Exemplo (no seu caso nao sei a posicao de mes): >> a <- dir('diretorioDosArquivos') >> table(substr(a, 10, 13)) ### anos >> >> >> >> On Tue, 2013-03-19 at 13:53 -0700, Thiago V. dos Santos wrote: >> > Olá pessoal, >> > >> > Baixei centenas de imagens de satélite e agora devo conferir se tenho >> todas que realmente vou precisar. A nomenclatura das imagens segue o padrão: >> > >> > MCD12Q1.A2001.h10v08.hdf >> > MCD12Q1.A2001.h10v09.hdf >> > >> > MCD12Q1.A2001.h10v10.hdf >> > >> > MCD12Q1.A2001.h10v11.hdf >> > >> > >> > MCD12Q1.A2001.h11v08.hdf >> > >> > MCD12Q1.A2001.h11v09.hdf >> > >> > MCD12Q1.A2001.h11v10.hdf >> > >> > MCD12Q1.A2001.h11v11.hdf >> > >> > MCD12Q1.A2001.h11v12.hdf >> > >> > MCD12Q1.A2001.h11v13.hdf >> > >> > e assim por diante >> > >> > onde 2001 é o ano e vai de 2001 a 2011. >> > h10 é um componente horizontal da imagem e vai de a 10 a 14. >> > v08 é um componente vertical da imagem e vai de a 08 a 13. >> > >> > O que preciso fazer é o seguinte: varrer uma lista de todas as imagens >> possíveis, que vão de 2001 a 2011, h10 a h14 e v08 a v13, e testar se tem >> alguma que está faltando. Para isso eu uso a função "file.exists" dentro de >> três loops: "ano", "h" e "v". >> > >> > No final da mensagem estou colando o código que usei para fazer isso. >> Ele até funciona, mas não salva a lista inteira, e sim somente o último >> nome. Estou fazendo alguma coisa errada no loop. Acredito também que fazer >> três loops não é a maneira mais otimizada de fazer isso, porém foi a >> primeira que veio na minha cabeça. >> > >> > Alguém pode ajudar, criticando o código? >> > >> > Obrigado desde já, >> > Thiago. >> > >> > >> > ################################################################## >> > # Gather all files >> > dir <- ('/Users/dossa013/data/MODIS/MCD12Q1/original') >> > files <- list.files(dir, pattern='hdf', full.names=T) >> > >> > # Set beginning and ending years >> > byear <- 2001 >> > eyear <- 2011 >> > >> > # Set tiles >> > h1 <- 10 >> > h2 <- 14 >> > v1 <- 08 >> > v2 <- 13 >> > >> > # Loop over year and then over tiles >> > for (x in byear:eyear) { >> > for (y in h1:h2) { >> > for (z in v1:v2) { >> > name <- >> paste('/Users/dossa013/data/MODIS/MCD12Q1/original/MCD12Q1.A',x,'.h',y,'v',z,'.hdf', >> sep='') >> > if (file.exists(name)==F) >> > >> > missing <- name >> > >> > } # end of v >> > } # end of h >> > } # end of year >> > > missing >> > [1] >> "/Users/dossa013/data/MODIS/MCD12Q1/original/MCD12Q1.A2011.h14v9.hdf" >> > _______________________________________________ >> > 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. >> > > _______________________________________________ > 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.
