2017-07-22 17 views
0

ソース()を介して、このコードを試みR関数 '...' 引数の範囲は

f1 <- function(x, ...){ 
    print(y) 
} 

f1(x = 1, y = 2) 

またはこのエラー

Error in print(y) : object 'y' not found 

を得たソースを介して、このコード()

f1 <- function(x, ...){ 
    y <- 2 
    f2(x, y = y, ...) 
} 

f2 <- function(x, ...){ 
    print(y) 
} 

f1(x = 1) 

私は '...'という議論は地球環境からの議論だと思いますか?

+0

などの正しいあなたの関数では、Yを呼び出す必要があります。下の寒さ(ソルマ)が働きます。 – Kevin

+0

ここで '...'を使用しようとしていますか?非常に特殊な名前の変数が必要なように思えるので意味がありません。あなたが望むふるまいは何ですか? – MrFlick

答えて

0

あなたは私はあなたが 'X'の値を使用していないので、それはスタックから値をポップされていないと思います。この

f1 <- function(x, ...){ 
l <- list(...) 
if(!is.null(l$y)) print(l$y) 
} 
f1(x = 1, y=2) 
+0

それは動作します!だから、 '...'は実際には「環境」なもので、アクセスするにはlist()が必要です。 –

+0

これは省略可能な引数です。いくつかのオプション引数が必要な場合は、次のように使用してください。 –

+0

答えを受け入れるplz –