[R-br] "Unmelt" data frame

Manoel Galdino mcz.fea em gmail.com
Quarta Março 30 10:40:36 BRT 2016


o 1:9 é indexado pelo valor de y, certo?
Vê se assim funciona

# vamor primeiro criar um índice pro seu loop
# para isso vou pegar 1:9 (y == 27), depois 10:18 (para y == 27.5) etc. e
colocar numa lista

df$index <- 1:nrow(df)
index <- list()
vec <- unique(df$y)
for ( i in 1:length(vec)) {
index[[i]] <- df$index[vec[i]]
}

# agora crio uma lista que vai armazenar o resultado de raster (.)
df.new <- list()

# faz um loop. Resultado é um lista dew data frames.
for (i in unique(df$y)){
  df.new.[[i]] <- raster(matrix(df$x[each 43248 rows],204,212,byrow=T))}

## se quiser depois juntar os data.frames, use rbind

ps.: não testei no R. Se você mandar um código que cria o df com y e x e em
qual biblioteca está função raster posso testar aqui se funciona e ajustar
caso tenha algum erro (bem possível).

ps.:2: se funciona, me avise que coloco como respsota no SO.

abcs
Manoel

2016-03-29 18:19 GMT-03:00 Jefferson Ferreira-Ferreira <jecogeo em gmail.com>:

> Olá Manoel, obrigado pela tua mensagem.
>
> Dados raster são imagens que contêm a descrição de cada pixel, em oposição
> aos vetores. Grossamente, pode-se dizer que é um "mapa" onde cada pixel
> representa um valor. No meu caso, valores binários (0,1) sobre
> presença/ausência de um fenômeno qualquer.
>
> Levemos em consideração o exemplo que dei no stackoverflow (
> http://stackoverflow.com/questions/36271393/r-unmelt-a-melted-dataframe-back-to-original-dimensions
> ):
>
> > df
>           y    x
>         1 27   1
>         2 27   1
>         3 27   0
>         4 27   1
>         5 27   0
>         6 27   0
>         7 27   0
>         8 27   1
>         9 27   1
>        10 27.5 1
>        11 27.5 1
>        12 27.5 0
>        13 27.5 1
>        14 27.5 0
>        15 27.5 0
>        16 27.5 0
>        17 27.5 1
>        18 27.5 1
>
> O resultado que preciso são objetos (do tipo raster), um para cada valor
> de y, com dimensões, digamos aqui, 3x3.
> Eu sei que posso atingir esse resultado através de r1 <- raster(matrix(df$
> x[1:9],3,3,byrow=T)).
> O caso é que eu precisaria de algo mais automatizado, que me separasse, a
> cada 9 linhas (nesse exemplo), um objeto cujo nome fosse df.new.(valor de y
> correspondente).
> Espero ter conseguido ser claro. Se ficar em dúvida ainda, e puder ajudar,
> escreva ou dê uma olhada no post
> <http://stackoverflow.com/questions/36271393/r-unmelt-a-melted-dataframe-back-to-original-dimensions>
> .
>
> Obtrigado e um abraços
>
>
>
>
> Em 29 de março de 2016 17:01, Manoel Galdino <mcz.fea em gmail.com> escreveu:
>
>> O que você quer dizer por raster? Eu não entendi direito o que você quer.
>> Você quer uma lista com 23 objetos?
>> Dê um exemplo reproduzível menor, digamos com y assumindo dois valores, e
>> qual seria o output neste caso particular.
>>
>> abcs,
>> Manoel
>>
>> 2016-03-29 17:52 GMT-03:00 Jefferson Ferreira-Ferreira <jecogeo em gmail.com
>> >:
>>
>>> Pessoal, estou com uma questão aberta no stackoverflow. Se alguém puder
>>> ajudar, eu ficaria muito grato!
>>>
>>>
>>> http://stackoverflow.com/questions/36271393/r-unmelt-a-melted-dataframe-back-to-original-dimensions
>>>
>>>
>>>
>>> --
>>>
>>> *Jefferson Ferreira-Ferreira*
>>>
>>> Geógrafo – GEOPROCESSAMENTO IDSM | Coordenadoria de TI
>>>
>>>
>>> Jefferson.ferreira em mamiraua.org.br
>>>
>>> *Instituto de Desenvolvimento Sustentável Mamirauá*
>>>
>>> Ministério da Ciência, Tecnologia e Inovação
>>>
>>> Telefone: +55 97 3343-9710
>>>
>>> *Google Maps* - Mapas deste e-mail:
>>>
>>> Exibir mapa ampliado
>>> <https://maps.google.com.br/maps?q=-3.355557,-64.731151&ll=-3.355471,-64.731145&spn=0.004632,0.006968&num=1&t=h&z=18>
>>>
>>>
>>> *Contatos particulares:*
>>> *(55) 9615-0100 <%2855%29%209615-0100>*
>>>
>>>
>>> _______________________________________________
>>> R-br mailing list
>>> 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.
>>>
>>
>>
>>
>> --
>> Manoel Galdino
>> https://sites.google.com/site/galdinomcz/
>>
>> _______________________________________________
>> R-br mailing list
>> 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.
>>
>
>
>
> --
>
> *Jefferson Ferreira-Ferreira*
>
> Geógrafo – GEOPROCESSAMENTO IDSM | Coordenadoria de TI
>
>
> Jefferson.ferreira em mamiraua.org.br
>
> *Instituto de Desenvolvimento Sustentável Mamirauá*
>
> Ministério da Ciência, Tecnologia e Inovação
>
> Telefone: +55 97 3343-9710
>
> *Google Maps* - Mapas deste e-mail:
>
> Exibir mapa ampliado
> <https://maps.google.com.br/maps?q=-3.355557,-64.731151&ll=-3.355471,-64.731145&spn=0.004632,0.006968&num=1&t=h&z=18>
>
>
> *Contatos particulares:*
> *(55) 9615-0100 <%2855%29%209615-0100>*
>
>
> _______________________________________________
> R-br mailing list
> 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.
>



-- 
Manoel Galdino
https://sites.google.com/site/galdinomcz/
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160330/1b0e9731/attachment.html>


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