在函数中设置默认值?

Sam*_*Sam 21 r function default-value

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

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)
 } 
}
Run Code Online (Sandbox Code Playgroud)

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

seq(from = 0.05, to = b, by = 0.001)
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助,

Mat*_*erg 30

dpower <- function(b, r, x = seq(from = 0.05, to = b, by = 0.001))
....
Run Code Online (Sandbox Code Playgroud)

  • 是的,`缺少(x)`.这将测试函数中的参数(`x`)是否在调用中指定. (4认同)
  • 好.无论如何都要检查函数是否在调用函数时指定了x参数?返回TRUE或FALSE的东西? (2认同)

Ric*_*rta 8

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

 if(is.null(x))
     x <- seq(from = 0.05, to = b, by = 0.001)
Run Code Online (Sandbox Code Playgroud)