Hi Neal, Notice that c(2, 3) gets replicated into c(2, 3, 2, 3, 2, 3) and then multiplied by column. This is not the same as multiplying each column by the respective element in vector c(2, 3).
Andrius 2012/12/30 Neal H. Walfield <n...@walfield.org> > At Sun, 30 Dec 2012 18:26:45 +0800 (CST), > meng wrote: > > > > 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 . > > You could convert the data frame to a matrix: > > > dat=data.frame(x1=1:3, x2=11:13) > > dat > x1 x2 > 1 1 11 > 2 2 12 > 3 3 13 > > as.matrix(dat) * c(3, 2) > x1 x2 > [1,] 3 22 > [2,] 4 36 > [3,] 9 26 > > Neal > > ______________________________________________ > 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]] ______________________________________________ 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.