Вектор масштабирования без среднего, стандартного отклонения, минимума и максимума

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

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

введите здесь описание изображения

Я хотел бы сдвинуть его так, чтобы старое значение «0» теперь равнялось 100, а старое значение «2» теперь равнялось «15». Однако я хотел бы сделать это, не используя ни старые, ни новые минимальные/максимальные значения.

Использование функции scale не подходит, поскольку она сдвигает среднее значение на новое значение, и я хотел бы сместить конкретное значение на новое. Я тоже не могу заставить rescale сделать это.

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

введите здесь описание изображения введите здесь описание изображения


person Dominique Makowski    schedule 10.05.2018    source источник


Ответы (1)


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

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

person Dominique Makowski    schedule 10.05.2018