Re: [R] Matrix: Problem with the code
Thanks Kingsford. I thought the column power was supposed to be just for that column but you're probably correct. English has its oddities because if one reads the actual sentence the person wrote it's still not clear, atleast to me. "Actually I want to have a matrix with p columns such that each column will have the elements of x^(column#)" Thanks and apologies to Charlotte for my incorrect correction. On Fri, Jan 9, 2009 at 9:37 PM, Kingsford Jones wrote: On Fri, Jan 9, 2009 at 6:36 PM, 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,]24 8 [4,] 87 7569 658503 [5,]9 81729 [6,] 63 3969 250047 [7,]8 64512 [8,]24 8 [9,] 35 1225 42875 [10,]6 36216 [11,] 91 8281 753571 [12,] 41 1681 68921 [13,] 22 484 10648 [14,]39 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,]24 8 [4,] 87 7569 658503 [5,]9 81729 [6,] 63 3969 250047 [7,]8 64512 [8,]24 8 [9,] 35 1225 42875 [10,]6 36216 [11,] 91 8281 753571 [12,] 41 1681 68921 [13,] 22 484 10648 [14,]39 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 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 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.
Re: [R] Matrix: Problem with the code
On Fri, Jan 9, 2009 at 6:36 PM, 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,]24 8 [4,] 87 7569 658503 [5,]9 81729 [6,] 63 3969 250047 [7,]8 64512 [8,]24 8 [9,] 35 1225 42875 [10,]6 36216 [11,] 91 8281 753571 [12,] 41 1681 68921 [13,] 22 484 10648 [14,]39 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,]24 8 [4,] 87 7569 658503 [5,]9 81729 [6,] 63 3969 250047 [7,]8 64512 [8,]24 8 [9,] 35 1225 42875 [10,]6 36216 [11,] 91 8281 753571 [12,] 41 1681 68921 [13,] 22 484 10648 [14,]39 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 >> 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 >>> 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.
Re: [R] Matrix: Problem with the code
Charlotte: I ran your code because I wasn't clear on it and your way would cause more matrices than the person requested. 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 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 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.
Re: [R] Matrix: Problem with the code
One of those more elegant ways: outer(x, 1:p, "^") Charlotte On Fri, Jan 9, 2009 at 4:24 PM, Sarah Goslee 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 > 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.
Re: [R] Matrix: Problem with the code
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 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] Matrix: Problem with the code
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 [[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.