Thank you very much!! Apparently, If I had defined my "main" variable
(results) as a list a priori, I hadn't had consumed so much time writing
and running codes after codes!
Your comments were very useful both for the code and my document! Thank you!

On Wed, Oct 3, 2012 at 4:35 PM, Rui Barradas <ruipbarra...@sapo.pt> wrote:

> Hello,
>
> I'm glad it helped.
> Now you have what is a data structure problem. The computations are the
> same but in a different output.
>
> First of all a terminology issue. In R the correct names for the data
> structures you've refered to are 'list', 'matrix' and 'array'. To make it
> short,
>
> vector ---> 1-dim
> matrix ---> 2-dim
> array ---> n-dim
>
> and
>
> list ---> no dim attribute, can hold any type of data structure.
>
> Your first sentence of this last post would read (changes in uppercase)
>
> Actually I am trying to make an LIST of length 7, where each LIST ELEMENT
>  IS AN ARRAY containing a different number of 2 by 2 matrices.
>
> In what follows, for the 3-dim array case I'll use the naming convention
> [row, column, slice].
> Each of your output list elements is an array with a possibly varying
> number of slices. Right now all of them have 64 slices.
>
> 1. You need a list of 7 elements, each of them indexed by your current 'i';
> 2. Each of those elements is a 3-dim array, each slice is a 2x2 matrix and
> each slice is indexed by your current 'l'.
> 3. Let's try it.
>
>
> Nx <- rep(0, length(x))
> Ny <- rep(0, length(y))
> n <- (x+1)*(y+1)
>
> results <- vector("list", 7)
>
>
> for(i in 1:length(x)){
>     Nx[i] <- length(1:(x[i]+1))
>     Ny[i] <- length(1:(y[i]+1))
>     results[[i]] <- array(dim = c(2, 2, n[i]))
>     l <- 1
>
>     for(j in 1:(Nx[i])){
>         for(k in 1:(Ny[i])){
>             tmp <- c((0:x[i])[j], (0:y[i])[k],-(0:x[i])[j], -(0:y[i])[k])
>             results[[i]][,, l] <- mat.stat[,,i] + matrix(tmp, nrow=2,
> ncol=2,byrow=T)
>             l <- l + 1
>         }
>     }
> }
> results
>
>
> I think this is it. Let us now if not.
>
> Rui Barradas
> Em 03-10-2012 08:48, Loukia Spineli escreveu:
>
>> Thank you very much for your suggestions. They both worked!
>>
>> Actually I am trying to make an array of length 7, where each array
>> contains a different number of 2 by 2 matrices. The vector "n" defines the
>> different number of matrices across the arrays. Therefore, the parameter
>> "l" has to change in every array i. Of course  I cannot put the vector "n"
>> directly into the dimensions of the array (under the name "results").
>>
>> First, I wanted to see if the code gives rational results assuming that
>> each array has the same number of 2 by 2 matrices. Fortunately, the
>> results
>> are rational (thanks to your help, as well). Now I am taking the problem
>> to
>> the next level and I want to construct this array of different number of 2
>> by 2 matrices!
>>
>> Any suggestions would be really very helpful!
>>
>> On Tue, Oct 2, 2012 at 6:23 PM, Rui Barradas <ruipbarra...@sapo.pt>
>> wrote:
>>
>>  Hello,
>>> See if this is it.
>>>
>>>
>>> Nx <- rep(0,length(x))
>>> Ny <- rep(0,length(y))
>>> n <- (x+1)*(y+1)
>>> results <- array(0, dim=c(2,2,64,7))
>>> # l <- 1 # <--------------------------- This changed place
>>>
>>> for(i in 1:length(x)){
>>>      Nx[i] <- length(1:(x[i]+1))
>>>      Ny[i] <- length(1:(y[i]+1))
>>>      l <- 1 # <----------------------- To here
>>>
>>>      for(j in 1:(Nx[i])){
>>>          for(k in 1:(Ny[i])){
>>>
>>>
>>> Hope this helps,
>>>
>>> Rui Barradas
>>> Em 02-10-2012 15:20, Loukia Spineli escreveu:
>>>
>>>  I want to make a multi-dimensional array. To be specific I want to make
>>>> the
>>>> following array
>>>>
>>>> results<-array(0,dim=c(2,2,64,****7))
>>>>
>>>>
>>>> This is the code I have created but it gives no result due to the error
>>>> "subscript out of bound".
>>>>
>>>> x<-rep(7,7)  # Missingness in intervention
>>>> y<-rep(7,7) # Missingness in control
>>>>
>>>> arraynames<-list(Group=c("****Success","Failure"),Outcome=c(****
>>>> "Intervention","Control"),****Trial=c("1":"7"))
>>>> mat.stat<-array(c(9,16,10,15,****66,12,44,23,102,88,66,104,**277,**
>>>> 60,247,119,23,43,20,41,201,****162,122,
>>>> 263,14,41,4,41),dim=c(2,2,7),****dimnames=arraynames);mat.stat
>>>>
>>>>
>>>> Nx<-rep(0,length(x))
>>>> Ny<-rep(0,length(y))
>>>> n<-(x+1)*(y+1)
>>>> results<-array(0,dim=c(2,2,64,****7))
>>>>
>>>> l<-1
>>>> for(i in 1:length(x)){
>>>> Nx[i] <- length(1:(x[i]+1))
>>>> Ny[i] <- length(1:(y[i]+1))
>>>> for(j in 1:(Nx[i])){
>>>> for(k in 1:(Ny[i])){
>>>> results[,,l,i]<-mat.stat[,,i]+****matrix(c(c(0:x[i])[j],c(0:y[**i]**
>>>>
>>>> )[k],-c(0:x[i])[j],
>>>> -c(0:y[i])[k]),nrow=2,ncol=2,****byrow=T)
>>>>
>>>> l<-l+1
>>>> }
>>>> }
>>>> }
>>>> results
>>>>
>>>> Any suggestion would be really welcome!
>>>> Thank you very much!
>>>>
>>>> Loukia
>>>>
>>>>          [[alternative HTML version deleted]]
>>>>
>>>> ______________________________****________________
>>>> R-help@r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/****listinfo/r-help<https://stat.ethz.ch/mailman/**listinfo/r-help>
>>>> <https://stat.**ethz.ch/mailman/listinfo/r-**help<https://stat.ethz.ch/mailman/listinfo/r-help>
>>>> >
>>>> PLEASE do read the posting guide http://www.R-project.org/**
>>>> posting-guide.html 
>>>> <http://www.R-project.org/**posting-guide.html<http://www.R-project.org/posting-guide.html>
>>>> >
>>>>
>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>
>>>>
>>>
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org 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.

Reply via email to