Hi Andrius:
Thanks for your reply.
Your answer: dat*rep(z,each=nrow(dat)) works well.
 
But a strange thing happened:
dat<-data.frame(x1=1:3,x2=4:6,x3=7:9)
z<-c(0.1,10,100)
#I wanna 0.1*x1,10*x2,100*x3

I type:
dat*rep(z,rach=nrow(dat))
"rach" is "each" indeed,but I type "rach" mistakenly.
What's strange to me is :No error reply appears,but show me the result:
> dat*rep(z,rach=nrow(dat))
     x1    x2    x3
1   0.1   0.4   0.7
2  20.0  50.0  80.0
3 300.0 600.0 900.0
Why does it happen,and what "rach" means?

Many thanks.

 





 


At 2012-12-31 00:08:26,"Andrius Druzinis" <andrius.druzinis@gmail.com> wrote:

Hi Meng, 


A one-liner would be
dat*rep(z, each=nrow(dat))


Cheers, 
Andrius



2012/12/30 meng <laomeng_3@163.com>
hi all:
Here's a dataframe(dat) and a vector(z):

dat:
x1     x2    x3
0.2   1.2   2.5
0.5   2      5
0.8   3      6.2

> z
[1]  10 100 100

I wanna do the following:
10*x1,100*x2,1000*x3

My solution is using the loop for z and dat(since the length of z is the same as ncol  of dat),which is tedious.
I wanna an efficient solution to do it .

Any help?

Many thanks!

My best



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



	[[alternative HTML version deleted]]


