我正在寫一個R函數來解決一個方程。我希望它適用於該等式的所有不同重排。我只需要一個函數,以便我可以用不同的默認值進行別名。編寫測試多個條件的R函數的最佳方法是什麼?
爲了簡單起見,假設我要解決A = B/C,這些變量
my_fun <- function(a,b,c) {
if(is.na(a)) {
return(b/c)
} else if(is.na(b)) {
return(a*c)
} else if(is.na(c)) {
return(b/a)
}
}
my_fun(a=NA,b=2,c=4)
> [1] 0.5
my_fun(a=NA,b=c(2,5),c=4)
這顯然是錯誤的方法的給定2。請有人建議一個更好的方法。
該方法有什麼問題?當我去學校時,「2/4 = 0.5」是正確的:-o – RHA
我想不出有什麼好的情況,你真的想這樣做(把爭論看作是可以互換的)。 –
@ hong-ooi我想用與不同解決方案相關的不同默認值來替代此函數。你會如何處理這個問題? – whanrott