[R-br] loops no R

Humberto Hazin hghazin em hotmail.com
Sexta Março 30 13:02:50 BRT 2012


Olá Benilto,
Segue em anexo os resultados gerados pelo teu codigo (result.csv) para 
que vc possa ter uma ideia do que foi gerado. o que estava perguntando 
era se seria possivel deixar da seguinte forma anexo (result1.csv)

Obrigado mais uma vez

Humberto


Em 3/30/2012 12:46 PM, Benilton Carvalho escreveu:
> nao tenho como ter ideia sobre as "5 colunas", afinal escrevi o codigo 
> sem saber o que sao os dados.
>
> se vc se refere a concatenar todos os data.frames resultantes num 
> data.frame maior, use:
>
> resultados = do.call(rbind, resultados)
>
> b
>
> 2012/3/30 Humberto Hazin <hghazin em hotmail.com 
> <mailto:hghazin em hotmail.com>>
>
>     Benilton,
>
>     Muito obrigado! Resolveu meu problema!
>     So mais uma pergunta. Caso eu queira que os valores fique em
>     apenas 5 colunas como o exemplo abaixo
>     Lat   Long    Year        Mes   SST
>     23      49       2009        1
>     22      49       2007        1
>     21      49       2009        2
>     21      49       2010        1
>     .           .           .               .
>     .           .           .               .
>     .           .           .               .
>
>
>     Obrigado também ao Cleber!
>
>     Um abraço
>
>     Humberto
>
>     Em 3/30/2012 12:10 PM, Benilton Carvalho escreveu:
>>     f = function(fname){
>>        year = substr(fname, 2, 5)
>>        day1 = as.integer(substr(fname, 6, 8))
>>        month = format(as.Date(strptime(paste(year, "01", "01",
>>     sep='-'), '%Y-%m-%d'))+day1-1, '%m')
>>        objOut = paste('m', substr(year, 3, 4), month, sep='')
>>
>>        hdf4to5(fname)
>>        assign(objOut, satinGet(paste(fname, 5, sep=''), lats=c(10,
>>     -30), lons=c(-20, -50), itype='oceancolor'))
>>        assign(objOut, data.frame(extract(simplifySat(get(objOut),
>>     extent=1))))
>>        assign(objOut, cbind(get(objOut), mes=as.integer(month),
>>     year=as.integer(year)))
>>        return(get(objOut)
>>     }
>>
>>     ## vetor com o nome de todos os arquivos hdf4
>>     fns = list.files(pattern='\\.hdf$')
>>     resultados = lapply(fns, f)
>>
>>     Claramente, eu nao experimentei o codigo acima... e fica pra vc a
>>     tarefa de testar e corrigir algum parenteses que esteja faltando
>>     ou algum outro problema.
>>
>>     benilton
>>
>>     2012/3/30 Humberto Hazin <hghazin em hotmail.com
>>     <mailto:hghazin em hotmail.com>>
>>
>>         Bom dia Benilton,
>>
>>         Obrigado por responder!
>>
>>         É o seguinte quando baixo a imagem ela já vem com esse número
>>         todo (S20040322004060) onde S=seawifs, em seguida vem o ano
>>         2004032 2004060 significa o periodo da coleta do satélite ou
>>         seja 032-60 dias de 2004, ou seja mes 2. Assim para o outro
>>         arquivo S20040012004031 001-31 dias de 2004 ou seja mes 1
>>
>>         Esse arquivos estão em hdf4 porém preciso converter para hdf5
>>         para poder trabalhar! Então criei uma função no R (hdf4to5)
>>         para para ler um executavel de um programa
>>         (H4H5TOOLS-2.2.1-win764-vs10static) em segundo plano para
>>         esse fim! Uso o pacote Satin para ler o arquivo convertido em
>>         hdf5 e fazer as extrações da área que quero ter esses dados
>>         "satinGet("S20040012004031.hdf5",lats=c(10, -30), lons=c(-20,
>>         -50), itype="oceancolor")" como preciso de quadrantes de 1x1
>>         grau uso a função "simplifySat(m0401, extent=1)" em seguida
>>         criei uma função no R "extract(m0401)" para extrair tudo em
>>         coluna Lat, Long, Parametro...
>>
>>
>>         hdf4to5("S20040012004031.hdf");m0401 <-
>>         satinGet("S20040012004031.hdf5",lats=c(10, -30), lons=c(-20,
>>         -50), itype="oceancolor")
>>          m0401<-(simplifySat(m0401,
>>         extent=1));m0401<-extract(m0401);m0401<-data.frame(m0401);m0401$mes<-1;
>>         m0401$year<-2004
>>
>>          hdf4to5("S20040322004060.hdf");m0402 <-
>>         satinGet("S20040322004060.hdf5",lats=c(10, -30), lons=c(-20,
>>         -50), itype="oceancolor")
>>          m0402<-(simplifySat(m0402,
>>         extent=1));m0402<-extract(m0402);m0402<-data.frame(m0402);m0402$mes<-2;
>>         m0402$year<-2004
>>
>>         Eu não sei se ficou mais claro agora!
>>
>>         Humberto
>>
>>
>>         Em 3/29/2012 9:25 PM, Benilton Carvalho escreveu:
>>>         Sim, alguem pode te ajudar... mas depende muito de vc ajudar
>>>         o alguem primeiro.... Qual o truque para sair
>>>         de S20040322004060 para "mes 2"? (minha bola de cristal diz
>>>         que o ano corresponde aos 4 primeiros digitos apos S, mas
>>>         isso eh soh uma hipotese, jah que vc nao disse explicitamente)
>>>
>>>         b
>>>
>>>         2012/3/29 Humberto Hazin <hghazin em hotmail.com
>>>         <mailto:hghazin em hotmail.com>>
>>>
>>>             Prezados,
>>>
>>>             Venho mais uma vez pedir ajuda a voces para resolver um
>>>             problema!
>>>
>>>             baixei uma série de images de satelite, por ano e mes
>>>             (2004 a 2010) totalizando 163 arquivos ate ai tudo bem!
>>>             Por termos de comodidade gostaria de criar um loop para
>>>             nao ter que digitar essas 163 linhas ou mais para
>>>             extrair latitude, longitude e SST. conforme o codigo abaixo:
>>>
>>>             hdf4to5("S20040012004031.hdf");m0401 <-
>>>             satinGet("S20040012004031.hdf5",lats=c(10, -30),
>>>             lons=c(-20, -50), itype="oceancolor")
>>>              m0401<-(simplifySat(m0401,
>>>             extent=1));m0401<-extract(m0401);m0401<-data.frame(m0401);m0401$mes<-1;
>>>             m0401$year<-2004
>>>
>>>              hdf4to5("S20040322004060.hdf");m0402 <-
>>>             satinGet("S20040322004060.hdf5",lats=c(10, -30),
>>>             lons=c(-20, -50), itype="oceancolor")
>>>              m0402<-(simplifySat(m0402,
>>>             extent=1));m0402<-extract(m0402);m0402<-data.frame(m0402);m0402$mes<-2;
>>>             m0402$year<-2004
>>>
>>>             Alguem poderia me ajudar!
>>>
>>>             Nao coloquei o arquivo pois é muito grande quase 36gigas
>>>             porém caso precisem posso colocar o parte do codigo para
>>>             baixarem um ou mais arquivos e testarem
>>>
>>>             Humberto
>>>
>>>             _______________________________________________
>>>             R-br mailing list
>>>             R-br em listas.c3sl.ufpr.br <mailto:R-br em 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 em listas.c3sl.ufpr.br  <mailto:R-br em 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.
>>
>>
>
>

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120330/5493e59f/attachment.html>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: result.csv
Tipo: application/vnd.ms-excel
Tamanho: 3355 bytes
Descrição: não disponível
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120330/5493e59f/attachment.xlb>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: result1.csv
Tipo: application/vnd.ms-excel
Tamanho: 3340 bytes
Descrição: não disponível
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120330/5493e59f/attachment-0001.xlb>


Mais detalhes sobre a lista de discussão R-br