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.