Jim Lemon wrote: > Jan M. Wiener wrote: > >>hello, >>I am trying to rescale a matrix according to one column in the matrix. >>Imagine having two matrices with 2 columns each: >> >>mat1: >>1 2.1 >>2 2.2 >>3 2.2 >>4 2.4 >>5 2.7 >>6 2.9 >> >>mat2: >>1 1.9 >>2 2.0 >>3 2.1 >>4 2.2 >>5 2.4 >>6 3.0 >>7. 2.8 >> >>I now want to rescale mat2 such that the values in columns 1 are also >>between 1 and 6 (as in mat1). Of, course the values in column 2 should >>be rescaled accordingly (simple interpolation). >>Are there any predefined functions in R that does such rescaling? > > > Hi Jan, > > library(plotrix) > newmat1<-rescale(mat1,c(1,6)) > newmat2<-rescale(mat2,c(1,6)) > Oops, didn't read that properly: newmat2<-cbind(rescale(mat2[,1],c(1,6)), rescale(mat2[,2],c(min(mat2[,2],max(mat2[,2])*6/7)))
and you can make it general by substituting: max(mat1[,1])/max(mat2[,1]) for 6/7 Jim ______________________________________________ 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.