在函数中设置默认值?
Posted
技术标签:
【中文标题】在函数中设置默认值?【英文标题】:Setting the default value in a function? 【发布时间】:2012-11-04 19:19:55 【问题描述】:下面有一个简单的密度函数:
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
seq(from = 0.05, to = b, by = 0.001)
感谢您的帮助,
【问题讨论】:
如果没有'x',你打算如何调用该函数? 嗨,马修,只有 b 和 r。我想让 R 知道如果 x 没有被调用(即 dpower 只有两个参数),那么 R 使用 x 的默认值。 可以,但是如果'x'参数在列表的最后一个就容易多了。 是的,我明白了……那么我们可以把它放在最后。 【参考方案1】:dpower <- function(b, r, x = seq(from = 0.05, to = b, by = 0.001))
....
【讨论】:
好。无论如何在函数中检查函数调用时是否指定了 x 参数?返回 TRUE 或 FALSE 的东西? 是的,missing(x)
。这将测试函数中的参数 (x
) 是否在调用中指定。【参考方案2】:
您可以将 X 的值设置为 NULL
并将函数的第一行之一设为
if(is.null(x))
x <- seq(from = 0.05, to = b, by = 0.001)
【讨论】:
以上是关于在函数中设置默认值?的主要内容,如果未能解决你的问题,请参考以下文章