2017-09-09 23 views
0

これが他の場所で返答されていれば謝罪します。私はRで2つの関数を定義し、次にそれらをネストして良い結果を得ました。今度は、第2の関数の変数を変更することで、これらの2つのネストされた関数を評価したいと思います。変数を変更するためにlistを作成してから、各要素を評価するのにlapplyを使用してみましたが、エラーが発生しています。私は下にあなたを立つ正しくRのlapplyを使ってリストの要素を評価する方法は?

# First function 
FirstFun <- function(a, b, c, d) { 
     answer1 <- (a + b)/(1-(0.2*(c/d))-(0.8*(c/d)^2)) 
     return(answer1) 
} 
# First function evaluated 
FirstFun(13,387,1728,1980) 

# Second function 
SecondFun <- function(answer1,c,d) { 
     answer2 <- answer1*(1-(0.2*(c/d))-(0.8*(c/d)^2)) 
     return(answer2) 
} 

# Nested function evaluated 
SecondFun(FirstFun(13,387,1728,1980),1728,1980) 

# Nested function evaluated with elements of a list 
c <- list(0:1980) 
lapply(c, SecondFun(FirstFun(13,387,1728,1980),c,1980)) 

答えて

0

- あなたが探している:

私のコードは次のようになります多分

SecondFun(FirstFun(13,387,1728,1980),0:1980,1980) 

またはこの:

SecondFun(FirstFun(13,387,1728,0:1980),0:1980,1980) 

両方のリターン長さ1981の数値ベクトル。

2つのもの - 1.リストは必要ありません。範囲が機能します。 2.変数 'c​​'を呼び出すことは悪い考えです..... cは予約されています

+1

これは素晴らしいです、ありがとう! – user8585613

関連する問題