Używanie licznika wewnątrz zastosowanej strukturalnej pętli w R
Próbuję wykreślić z dość złożonej tablicy w R. Chcę utworzyć obraz z 3 na 3 wykresami, każdy z czerwonymi i niebieskimi punktami na nim.
Mam strukturę pętli stosowania, która działa, ale chciałbym zmienić maksymalną wartość y dla każdego wiersza.
Normalnie robiłbym to za pomocą licznika, takiego jak ja, w innych językach. Ale zastosowanie w R całkowicie mnie zaskakuje!
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.
})
})
Z góry dziękuję za myśli, są bardzo mile widziane!
Pozdrawiam Kate