0
Я пытаюсь заменить NAs на укороченные нормальные значения распределения. Сначала я использовал sample
следующим образом и функция работала:замените NA на укороченные нормальные значения распределения в r
v.new <- replace(vector,v, sample(8,length(v),replace =FALSE))
Однако, когда я пытаюсь использовать rtnorm
, кажется, не работает. Я получил сообщения об ошибках, и для замены НС требуются возрастные периоды на нужный интервал. Любое предложение сделать эту работу?
library(msm)
# Some data
data("airquality")
airquality$Ozone
# My function
add.trunc.to.NAvector <- function(vector){
v <- NULL
for(i in 1:length(vector)){
if(is.na(vector[i])==TRUE)
v <- append(v, i)
}
mean.val <- mean(vector)
sd.val <- sd(vector)
min.val <- mean.val - 4 * sd.val
max.val <- mean.val + 4 * sd.val
v.new <- replace(vector,v, rtnorm(length(v), lower = min.val, upper = max.val))
return(v.new)
}
Не могли бы вы просто заменить (вектор, вектор [is.na (вектор)], rtnorm (...)) '? Что не работает? Что не работает? Каков ожидаемый результат? –
Это занимает много времени, чтобы работать без результата, и я не получаю сообщение об ошибке. – mina
Пожалуйста, добавьте дополнительную информацию на свой вопрос. Какие пакеты вы используете? Что такое 'vector' (вероятно,' airquality $ Ozone', но укажите, чтобы сделать вещи однозначными)? Что такое ожидаемый результат? –