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.