Мне нужен способ заменить выбросы значением -9999. По моим данным -9999 означает, что значение отсутствует. Это просто соглашение, обычно используемое для этого типа данных вместо NA.
У меня есть фрейм данных под названием amf, состоящий из 43 столбцов. Мне нужно идти столбец за столбцом и заменять каждое значение выше 99-го процентиля и ниже 1-го процентиля на -9999. Некоторые столбцы мне нужно пропустить, например столбец дня года.
Я пробовал использовать функции apply и lapply по-разному, но, должно быть, использую их неправильно. Вот что я пробовал
amf_out <- apply(amf[,4:43],2, which(amf[,4:43] > quantile(amf[,4:43, .99)))
amf_out <- lapply(1:length(amf), function(i) amf[which(amf[,i] > quantile(amf[,1],.99))] <-
-9999)
amf[which(amf[,4:43] > quantile(amf[,4:43], .99))] <- -9999
Ни один из тезисов не сработал. Какие-либо предложения?