パラメータに基づいて別の関数をreutnする関数を作成しません。以下の表にあるように、method = 'local'のときは正しい数値を返しますが、method = 'emep' & n = 0を選択した場合はfunction(V) {(281* V ^-0.63)*det[1,1]}
を返しますが、function(V) {(281* V ^-0.63)*det[i,j]}
を返します。 これをどのように修正できますか?return r式の数値を持つ関数
f <- function(i,j, method,n, V,...){
fen <- matrix(data=runif(50*25),nrow=50,ncol=25)
det <- matrix(data=runif(50*25),nrow=50,ncol=25)
ifelse(method=='local',
return(fen[i,j]*det[i,j]),
ifelse((method=='emep' & n == 0),
return(function(V) {(281* V ^-0.63)*det[i,j]}),'na'))
}
f(1,1,'local')
f(1,1,'emep',0)
function(V) {(281* V ^-0.63)*det[i,j]}
<environment: 0x609af48>
ありがとうございました!
をあなたは 'アウト<-f返される関数評価された場合(1,1、「EMEPを」、0); out(1) '、それは動作しませんか? – user5219763
それは私が探しているものではありません。私が '<-f(1,1、 'emep'、0)を実行すると、 out(1) '、それは数値を返しますが、代わりに式F(V)が必要です。 – xhie
また、ここで 'ifelse()'を使わないでください。プログラム制御のために 'if'と' else'を使います。 'ifelse()'はベクトルに対する操作です。 – Thomas