#r #function #statistics
#r #функция #Статистика
Вопрос:
Я новичок в R, и у меня есть задание, в котором я должен создать функцию, в которой все числа масштабируются, Inf сопоставляется с 1, а -Inf сопоставляется с 0. Я понимаю, как выполнить масштабирование, я просто не знаю, как добавить к функции, чтобы Inf стал 1, а -Inf стал 0. Если бы кто-нибудь мог хотя бы указать мне правильное направление или сообщить, какие команды в R позволят мне это сделать, я был бы очень признателен!
Вот мой код на данный момент:
rescale01<-function(x){
rng<-range(x, na.rm=TRUE, finite=TRUE)
(x-rng[1])/(rng[2]-rng[1])
}
Заранее спасибо за вашу помощь.
Комментарии:
1. Только что понял, что допустил опечатку в более ранней версии. Я хочу, чтобы -Inf отображался в 0, а Inf отображался в 1.
Ответ №1:
Вы можете попробовать atan
f <- function(x) 0.5 atan(x)/pi
Комментарии:
1. Почти: «Inf сопоставляется с 1, а -Inf сопоставляется с -1» , ваша функция меняет пределы и переходит от 0 к 1.
2*atan(x)/pi
это правильная функция. Проголосуйте, но измените его.2. @RuiBarradas Спасибо за напоминание! Я допустил там опечатку, но она не исправлена.