Я пытаюсь запустить приведенный ниже код в R, но он не работает.Нужна ваша помощь.Позвольте мне объяснить мое требование.
У меня есть фрейм данных с именем Data
.В этом у меня есть столбец с именем view
.Давайте рассмотрим view
содержит 6 значений 1,2,3,5,20,NA
.Теперь я хочу рассчитать 99 процентиль на просмотр.Использование функции квантиля на этих данных даст мне значение квантиля 19 (округленное).Теперь я проверяю условие, если столбец представления, имеющий любое значение больше 19, заменит его на 19. Здесь в нашем примере у нас есть одно значение больше 19, которое равно 20, поэтому 20 следует заменить на 19.
Теперь, если я запускаю весь код вручную, как показано ниже, он прекрасно работает
Data <- data.frame(view=c(1,2,3,5,20,NA))
summary(Data)
n = quantile(Data$view, 0.99, na.rm = TRUE)
Data$view[Data$view > n] <- n
Но я хочу создать функцию, которая может просто вызывать переменную из фрейма данных и выполнять вышеуказанную работу.Ниже приведена функция, которую я пробовал, но она не работает.
ReplaceQuantile <- function(x) {
n = quantile(na.omit(x),0.99)
x[x > n] <- n
}
ReplaceQuantile (Data$view)
Надеюсь, теперь мое требование ясно.