web-dev-qa-db-ja.com

関数にデフォルト値を設定しますか?

以下に簡単な密度関数を示します。

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)

ご協力いただきありがとうございます、

20
Sam
dpower <- function(b, r, x = seq(from = 0.05, to = b, by = 0.001))
....
30

Xの値をNULLに設定し、関数の最初の行の1つを

 if(is.null(x))
     x <- seq(from = 0.05, to = b, by = 0.001)
8
Ricardo Saporta