On Fri, Jan 9, 2009 at 6:36 PM, <markle...@verizon.net> wrote: > Charlotte: I ran your code because I wasn't clear on it and your way would > cause more matrices than the person requested.
Bhargab gave us x<-c(23,67,2,87,9,63,8,2,35,6,91,41,22,3) and said: "I want to have a matrix with p columns such that each column will have the elements of x^(column#)." so, I think Charlotte's code was spot-on: p <- 3 outer(x, 1:p, '^') [,1] [,2] [,3] [1,] 23 529 12167 [2,] 67 4489 300763 [3,] 2 4 8 [4,] 87 7569 658503 [5,] 9 81 729 [6,] 63 3969 250047 [7,] 8 64 512 [8,] 2 4 8 [9,] 35 1225 42875 [10,] 6 36 216 [11,] 91 8281 753571 [12,] 41 1681 68921 [13,] 22 484 10648 [14,] 3 9 27 Here's another way -- a bit less elegant, but a gentle introduction to thinking in vectors rather than elements: mat <- matrix(0,nrow=length(x), ncol=p) for(i in 1:p) mat[,i] <- x^i mat [,1] [,2] [,3] [1,] 23 529 12167 [2,] 67 4489 300763 [3,] 2 4 8 [4,] 87 7569 658503 [5,] 9 81 729 [6,] 63 3969 250047 [7,] 8 64 512 [8,] 2 4 8 [9,] 35 1225 42875 [10,] 6 36 216 [11,] 91 8281 753571 [12,] 41 1681 68921 [13,] 22 484 10648 [14,] 3 9 27 best, Kingsford Jones So > I think the code below it, although not too short, does what the person > asked. Thanks though because I understand outer better now. > > temp <- matrix(c(1,2,3,4,5,6),ncol=2) > print(temp) > > #One of those more elegant ways: > print(temp) > outer(temp,1:p,'^')One of those more elegant ways: > > > # THIS WAY I THINK GIVES WHAT THEY WANT > > sapply(1:ncol(temp), function(.col) { > temp[,.col]^.col > }) > > > > On Fri, Jan 9, 2009 at 7:40 PM, Charlotte Wickham wrote: > >> One of those more elegant ways: >> outer(x, 1:p, "^") >> >> Charlotte >> >> On Fri, Jan 9, 2009 at 4:24 PM, Sarah Goslee <sarah.gos...@gmail.com> >> wrote: >>> >>> Well, mat doesn't have any dimensions / isn't a matrix, and we don't >>> know what p is supposed to be. But leaving aside those little details, >>> do you perhaps want something like this: >>> >>> x<-c(23,67,2,87,9,63,8,2,35,6,91,41,22,3) >>> p <- 5 >>> mat<- matrix(0, nrow=p, ncol=length(x)) >>> for(j in 1:length(x)) >>> { >>> for(i in 1:p) >>> mat[i,j]<-x[j]^i >>> } >>> >>> Two notes: I didn't try it out, and if that's what you want rather >>> than a toy example >>> of a larger problem, there are more elegant ways to do it in R. >>> >>> Sarah >>> >>> On Fri, Jan 9, 2009 at 6:42 PM, Bhargab Chattopadhyay >>> <bharga...@yahoo.com> wrote: >>>> >>>> Hi, >>>> >>>> >>>> Can any one please explain why the following code doesn't work? Or can >>>> anyone suggest an alternative. >>>> Suppose >>>> x<-c(23,67,2,87,9,63,8,2,35,6,91,41,22,3) >>>> mat<-0; >>>> for(j in 1:length(x)) >>>> { >>>> for(i in 1:p) >>>> mat[i,j]<-x[j]^i; >>>> } >>>> Actually I want to have a matrix with p columns such that each column >>>> will have the elements of x^(column#). >>>> >>>> Thanks in advance. >>>> >>>> Bhargab >>>> >>>> >>>> >>> >>> >>> >>> -- >>> Sarah Goslee >>> http://www.functionaldiversity.org >>> >>> ______________________________________________ >>> 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. >>> >> >> ______________________________________________ >> 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. > > ______________________________________________ > 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. > ______________________________________________ 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.