2016-04-09 12 views

答えて

0

それは非常に悪い考えですが、あなたははそれも(むしろ重要)関数名ですので、私は変数cを使用していない

f <- function(P) { 
    x <<- P + 1 
    y <<- x + 2 

} 

f(2) 

を行うことができます。そして、それは確かに失敗するでしょう。

あなたが別の関数(f2)に最初の関数(f1)によって返された複数の値を渡す必要がある場合、何をやるべきことのようなものです:

f1 <- function(P) { 
    x <- P + 1 
    y <- x + 2 
    list(x=x, y=y) 
} 

f2 <- function(x, y) { 
    x + y 
} 

r <- f1(2) 
f2(r$x, r$y) 

または

r <- f1(2) 
do.call(f2, r) 
+0

感謝RobertH、私はこれを知っていますが、他にも解決策がありますか? – Tam

+0

あなたのスクリプトは変数の名前としてxとyを使っていますが、名前がcとdのときはエラーがあります:f(2)のエラー: 'c'のロックされたバインディングの値を変更できません。なぜか分からない。 – Tam

+0

申し訳ありませんRobertH、私はRに少し自信がありますが、なぜ悪い考えですか? 1つの関数から1つ以上の変数を返すのが最善の戦略ですか? – Tam

関連する問題