Среда и тому подобное всегда невероятно смущали меня в R. Думаю, поэтому это скорее справочный запрос, поскольку я в течение последнего часа просматривал сайт в поисках бесполезного ответа.
У меня есть простая функция R с именем target
, определенная следующим образом
target <- function(x,scale,shape){
s <- scale
b <- shape
value <- 0.5*(sin(s*x)^b + x + 1)
return(value)
}
Затем я определяю функцию AR
AR <- function(n,f,...){
variates <- NULL
for(i in 1:n){
z <- runif(1)
u <- runif(1)
if(u < f(z, scale, shape)/c){
variates[i] <- z
}else{next}
}
variates <- variates[!is.na(variates)]
return(variates)
}
, в которой функция target
имеет видоценивается.К сожалению, вызов возвращает следующую ошибку
sample <- AR(n = 10000, f = target, shape = 8, scale = 5)
Error in fun(z, scale, shape) : object 'shape' not found
Я знаю, что это связано с функцией AR
, не зная, где искать объекты shape
и scale
, но я подумал, что этов точности работа с многоточием: я могу поставить определение аргумента «на удержание», пока один из них не вызовет функцию.Где я ошибаюсь, и может ли кто-нибудь подсказать мне, где искать понимание этой конкретной проблемы?