Масштабировать вектор без среднего, сд, мин и макс - PullRequest
0 голосов
/ 10 мая 2018

У меня асимметричное распределение:

x <- c(rnorm(100, 0, 1),
     rnorm(100, 2.5, 0.5))

enter image description here

Я хотел бы сдвинуть его так, чтобы старое значение «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))))

enter image description here enter image description here

1 Ответ

0 голосов
/ 10 мая 2018

Работает с масштабированием:

scales::rescale(x, from=c(0, 2), to=c(100, 100+15))

...