30

我在下面有一个简单的密度函数:

dpower <- function(x, b, r){
if ((b <= 0 | r <= 0)) 
return("Wrong parameters entered!")
else{
 density.temp <- (r/b)*(x/b)^(r - 1)
 density.temp[which(x >= b | x <= 0)] <- NA
 return(density.temp)
 } 
}

此函数返回与参数 b 和 r 的指定分布中的值 x 对应的密度。我想在 x 上设置默认值,如果用户不指定 x,则默认值通过。我们可以简单地设置 dpower <- function(x = x.default, b, r)... 但是,我的默认值取决于 r 和 b。我怎样才能做到这一点?假设 x 的默认值为:

seq(from = 0.05, to = b, by = 0.001)

谢谢你的帮助,

4

2 回答 2

40
dpower <- function(b, r, x = seq(from = 0.05, to = b, by = 0.001))
....
于 2012-11-16T04:34:23.793 回答
8

您可以将 X 的值设置为NULL并将函数的第一行之一设置为

 if(is.null(x))
     x <- seq(from = 0.05, to = b, by = 0.001)
于 2012-11-16T04:41:37.520 回答