gpt4 book ai didi

r - 如何在 R 中创建线性变换函数?

转载 作者:行者123 更新时间:2023-12-01 03:51:34 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Scale a series between two points

(6 个回答)


7年前关闭。




我正在尝试制作一个重新缩放的函数
位于两个参数lower和upper之间的向量。
重新缩放是通过线性变换完成的。

# rescales x to lie between lower and upper
rescale <- function(x, lower = 0, upper = 1){
slope <- (upper-lower)/(which.max(x)-which.min(x))
intercept <- slope*(x-which.max(x))+upper
y <- intercept + slope * x
return(list(new = y, coef = c(intercept = intercept, slope = slope)))
}

我有一种感觉,我没有走在正确的轨道上。
请给我一些建议以使其正确。

最佳答案

这是一个基于此相关逻辑的函数Q&A :

rescale <- function(x, from, to) {
maxx <- max(x)
minx <- min(x)
out <- (to - from) * (x - minx)
out <- out / (maxx - minx)
out + from
}

> rescale(1:10, 2, 5)
[1] 2.000000 2.333333 2.666667 3.000000 3.333333 3.666667 4.000000 4.333333
[9] 4.666667 5.000000

请注意,如果 min(x) == max(x),这将不起作用因为我们将在函数的最后一行中除以 0。

关于r - 如何在 R 中创建线性变换函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22058459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com