0
我试图用截断的正态分布值代替NAs。 首先我用sample
如下,函数工作:用r中的截断正态分布值代替NA
v.new <- replace(vector,v, sample(8,length(v),replace =FALSE))
然而,当我尝试使用rtnorm
它似乎不工作。我收到了任何错误消息,并且需要很长时间才能以期望的时间间隔替换NA。任何建议使这项工作?
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)
}
难道你不能只是做'替换(vector,vector [is.na(vector)],rtnorm(...))'吗?什么不起作用?什么不起作用?预期的结果是什么? –
运行没有结果需要很长时间,我没有收到任何错误消息。 – mina
请在您的问题中添加更多信息。你使用什么软件包?什么是'矢量'(可能是'空气质量$臭氧',但指定使事情明确)?预期的结果是什么? –