基本的に次のようなRコードがあります。
compute.quantiles <- function(mu, type) {
## 'mu' and 'type' are vectors of the same length
var <- ifelse(type=='a', 6.3523 * mu^2,
ifelse(type=='b', 234.23 * mu,
ifelse(type=='c', {s <- 9.8 * ((mu-0.3)/3)^(6/7)+0.19; mu + mu^2/s},
ifelse(type=='d', 56.345 * mu^1.5,
ifelse(type=='e', 0.238986 * mu^2,
ifelse(type=='f', mu + 1.1868823 * mu^2,
NA ))))))
# ...then do something with var...
}
いくつかのサンプル入力と出力:
print(compute.quantiles(2:4, c('c','d','e')))
[1] 2.643840 292.777208 3.823776
それは正しく機能しますが、深いネストではちょっと醜いので、もっとうまく機能する別のイディオムがあるかどうか疑問に思います。誰か提案がありますか?ベクトルを最初の引数として受け入れた場合switch()
、それはうまく機能しますが、スカラーを使用するだけです。