On Thu, 2 Sep 2004 07:26:31 -0700 (PDT), dan roberts
<[EMAIL PROTECTED]> wrote :

>Hello,
>
>It's a trivial question but I haven't found a solution in the
>full reference manual. How can I make the code below run? 

Probably most easily if f was a list of lists (see solution 1 below).

>Would
>an array/matrix solution be faster? Please provide a short
>example, if possible.

Yes if the problem were bigger; see solution 2 below.  With the 5x5
size, you won't notice any difference.

>
>Thanks in advance,
>dan
>
>for (k in 1:5) 
>       assign(paste("f",k,sep=""),vector(mode="complex",5))
>for (k in 1:5) {
>       for(j in 1:5) 
>               f[k][[j]] <- sum(d$Y[k]*exp(-1i*j*d$X)) }
>Error: Object "f" not found
>
>(I want f[k] to become f1,...,f5; and d$Y[k] should be
>d$Y1,...,d$Y5.)
>

Solution 1:

f <- list()
for (k in 1:5) {
        f[[k]] <- list()
        for(j in 1:5) 
                f[[k]][[j]] <- sum(d$Y[k]*exp(-1i*j*d$X)) 
}
for (k in 1:5) 
        assign(paste("f",k,sep=""),f[[k]])

Solution 2:

f <- matrix( vector(mode="complex", 25), 5, 5)
for (k in 1:5) {
        for(j in 1:5) 
                f[k,j] <- sum(d$Y[k]*exp(-1i*j*d$X)) 
}
for (k in 1:5) 
        assign(paste("f",k,sep=""),f[k,])

______________________________________________
[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

Reply via email to