I think changing nrow() to NROW() will get around that error. However, this,
as you can see, this goes a little astray at the end. Perhaps something like
this will work for you:
z.ext <- rbind(z,array(0,c(9,3)))
z.out <- array(0, c(3,3,9))
for(i in 1:9){
z.out[,,i] <- cbind(z.ext[c(i,i+3,i+6),])
}
print(z.out)
Hope this helps,
Michael Weylandt
On Wed, Sep 14, 2011 at 3:42 PM, Kristian Lind <
[email protected]> wrote:
> Hi,
>
> I'm solve a problem where I want to select every 3rd row from a matrix. I
> do
> this for all rows in a loop. This gives me "i" matrices with different
> number of rows
>
> I want to stack these matrices in an array and fill the blanks with zero.
>
> Does anyone have any suggestions on how to go about this?
>
> So i want to go from
>
> [,1] [,2] [,3]
> [1,] 1 1 1
> [2,] 2 2 2
> [3,] 3 3 3
> [4,] 4 4 4
> [5,] 5 5 5
> [6,] 6 6 6
> [7,] 7 7 7
> [8,] 8 8 8
> [9,] 9 9 9
>
> to
>
> , , 1
>
> [,1] [,2] [,3]
> [1,] 1 1 1
> [2,] 4 4 4
> [3,] 7 7 7
>
> , , 2
>
> [,1] [,2] [,3]
> [1,] 2 2 2
> [2,] 5 5 5
> [3,] 8 8 8
>
> , , 3
>
> [,1] [,2] [,3]
> [1,] 3 3 3
> [2,] 6 6 6
> [3,] 9 9 9
>
> , , 4
>
> [,1] [,2] [,3]
> [1,] 4 4 4
> [2,] 7 7 7
> [3,] 0 0 0
>
> ...
>
> , , 9
>
> [,1] [,2] [,3]
> [1,] 9 9 9
> [2,] 0 0 0
> [3,] 0 0 0
>
>
> Here's my go at it
>
> z <- array(c(1:9), c(9,3))
> z1 <- array(0, c(3,3,9))
> for(i in 1:9){
> if(nrow(z[seq(i,9,3),]) == 2)
> z1[,,i] <- rbind(z[seq(i,9,3),],c(0,0,0))
> else
> z1[,,i] <- z[seq(i,9,3),]
> }
> print(z1)
>
> I get the following error: Error in if (nrow(z[seq(i, 9, 3), ]) == 2) z1[,
> ,
> i] <- rbind(z[seq(i, :
> argument is of length zero
>
> This is because nrow(z[seq(i, 9, 3) becomes NULL.
> Furthermore, this doesn't take care of the case where nrow(z[seq(i,9,3),])
> ==1
>
> Sorry for the long email and thank you in advance for reading it ;)
>
> Kristian
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.