The following is also work: data.frame(t(t(dat)*z))
At 2012-12-31 00:40:24,"Neal H. Walfield" <n...@walfield.org> wrote: >At Sun, 30 Dec 2012 16:28:44 +0000, >Andrius Druzinis wrote: >> >> 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). > >I think you mean multiplied by element. > >Here's a better solution using t to transpose the matrix: > >dat=data.frame(x1=1:3, x2=11:13) > as.matrix(dat) > x1 x2 >[1,] 1 11 >[2,] 2 12 >[3,] 3 13 >t(as.matrix(dat)) * c(2, 3) > [,1] [,2] [,3] >x1 2 4 6 >x2 33 36 39 > >> >> 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.