Usando um contador dentro de um loop estruturado Apply em R
Estou tentando traçar uma matriz bastante complexa em R. Quero produzir uma imagem com 3 por 3 gráficos, cada um com pontos vermelhos e azuis.
Eu tenho uma estrutura de loops de aplicação que funciona, mas eu gostaria de alterar o valor máximo de y por cada linha.
Eu normalmente faria isso usando um contador, como eu, em outros idiomas. Mas a coisa de aplicar em R está me deixando completamente desconcertada!
par(mfrow=c(3,3),pty="s") # a 3 by 3 graphic
set.seed(1001)
x <- 1:54 # with 1 to 54 along the x axis
y <- array(rexp(20), dim=c(54,6,3,2)) # and the y axis coming
# from an array with dimensions as shown.
ymax <- c(1,0.1,0.3) # three different y maximum values I want
# on the graphic, one for each row of graphs
counter <- 1 # a counter, starting at 1,
# as I would use in a traditional loop
apply(y[,3:5,,], 2, function(i) # my first apply, which only considers
# the 3rd, 4th and 5th columns
{
yy <- ymax[counter] # using the counter to select my ylimit maximum
apply(i, 2, function (ii) # my second apply, considering the 3rd
# dimension of y
{
plot(x,ii[,1], col="blue", ylim=c(0,yy))
# plotting the 4th dimension
points(x,ii[,2], col="red")
# adding points in a different
# colour from the 4th dim.
})
})
Agradecemos antecipadamente por seus pensamentos, eles são muito apreciados!
Cheers Kate