
Caros o seguinte tenho um pequeno problema para manipular arrays dentro de um apply olhe o seguinte exemplo. Eu tenho este pequeno array my.array <- array(1:18, dim = c(3,3,2)) Quero aplicar esta função a cada elemento do array e obter outro array do mesmo tamanho igualzinho mas com informacao diferente.Veja so ID.median <- function(x, median,n.array){ if(n.array == 1){ saida <- ifelse(x < median, 0, 1)} if(n.array == 2){ saida <- ifelse(x < median, 10,20)} return(saida) } É claro que aqui só tem dois arrays, mas o fato relevante é que a minha depende de qual o número de array que eu estou. Agora quero usar o apply pra aplicar minha função a cada componente do meu array. apply(my.array, 1:3, ID.median, median = 10, n.arrray = ???) Como fazer isso ? alguma outra idéia ?? Valeu -- Wagner Hugo Bonat LEG - Laboratório de Estatística e Geoinformação UFPR - Universidade Federal do Paraná

Boa noite Wagner, não sei se entendi bem o que precisas. Mas no caso, acho que para aplicar a função que criastes, seria apenas setar uma adequação no código do apply. Utilizei n.array igual a 2, pois trata-se de um array com dois níveis. No seu caso, seria aplicar em um array com o número de níveis que você têm. apply(my.array, 1:3, FUN = function(x) ID.median(x, median = 10, n.array = 2)) Não sei se era isso que querias, caso não seja, desculpe-me por não conseguir ajudar melhor. Abraço RS ___________________________________________________ *Rodrigo Sant'Ana* -- Mestre em Ciência e Tecnologia Ambiental - MCTA/UNIVALI Graduado em Oceanografia - CTTMar/UNIVALI Universidade do Vale do Itajaí - UNIVALI -- Em 2 de outubro de 2014 10:09, Wagner Bonat <wbonat@gmail.com> escreveu:
Caros o seguinte tenho um pequeno problema para manipular arrays dentro de um apply olhe o seguinte exemplo.
Eu tenho este pequeno array
my.array <- array(1:18, dim = c(3,3,2))
Quero aplicar esta função a cada elemento do array e obter outro array do mesmo tamanho igualzinho mas com informacao diferente.Veja so
ID.median <- function(x, median,n.array){ if(n.array == 1){ saida <- ifelse(x < median, 0, 1)} if(n.array == 2){ saida <- ifelse(x < median, 10,20)} return(saida) }
É claro que aqui só tem dois arrays, mas o fato relevante é que a minha depende de qual o número de array que eu estou. Agora quero usar o apply pra aplicar minha função a cada componente do meu array.
apply(my.array, 1:3, ID.median, median = 10, n.arrray = ???)
Como fazer isso ? alguma outra idéia ??
Valeu
-- Wagner Hugo Bonat LEG - Laboratório de Estatística e Geoinformação UFPR - Universidade Federal do Paraná
_______________________________________________ R-br mailing list R-br@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.
participantes (2)
-
Rodrigo Sant'Ana
-
Wagner Bonat