Масштабировать вектор без среднего, сд, мин и макс
У меня асимметричное распределение:
x <- c(rnorm(100, 0, 1),
rnorm(100, 2.5, 0.5))
Я хотел бы сдвинуть его так, чтобы старое значение "0" стало теперь 100, а старое значение "2" стало теперь "15". Тем не менее, я хотел бы сделать это без использования старых или новых значений min/max.
С использованием scale
функция не присваивается, так как она сдвигает среднее значение к новому значению, и я хотел бы переместить определенное значение на новое. Я не могу сделать rescale
не делай этого
plot(density(scale(x)*15+100))
plot(density(scales::rescale(x, from=c(0, 2), to=c(100, 15))))
1 ответ
Работает с масштабированием:
scales::rescale(x, from=c(0, 2), to=c(100, 100+15))