arbitrary scaling
Perhaps approx: approx(range(x), c(0.5, 1), xout = x)$y A one-linear, but longer, is also possible based on lm: predict(lm(c(0.5, 1) ~ x, data.frame(x = range(x))), data.frame(x))
On Mon, Mar 8, 2010 at 9:37 AM, Petr PIKAL <petr.pikal at precheza.cz> wrote:
Hi all
I know I probably reinvented wheel but it was maybe simpler then search in
docs or ask help before I did my part.
I made a simple function which can scale a vector between chosen values.
Do anybody know simpler/better approach?
myscale<-function(x, miny=0.5, maxy=1) {
rx <- diff(range(x, na.rm=T))
minx <- min(x, na.rm=T)
tga <- (maxy-miny)/rx
b <- miny - tga* minx
res <- x*tga+b
res
}
x <- c(5,30,50)
myscale(x)
[1] 0.5000000 0.7777778 1.0000000
Thank you
Regards
Petr
______________________________________________ R-help at 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.