2015-09-06 246 views
9

以下爲什麼不起作用?爲什麼我們不能循環'...'?

f = function(...) for (i in ...) print(i) 
f(1:3) 
# Error in f(1:3) : '...' used in an incorrect context 

,而這項工作很好

f = function(...) for (i in 1:length(...)) print(...[i]) 
f(1:3) 
# [1] 1 
# [1] 2 
# [1] 3 

回答

8

它不工作,因爲...對象類型不解釋代碼訪問。您需要捕捉對象的名單,作爲nongkrong表明:

for(i in list(...)) 

看看將R手動here

+4

你也可以把它包裝'C'如'C(...)' –

+1

@ Remi.b作爲旁註,您實際上可以像訪問'..1','。2'等那樣訪問'...'的特定元素。對於循環來說不是非常有用,但是您會看到從時間將時間作爲獲取特定項目的捷徑。 – joran

+0

@joran - 漂亮,這是記錄在'?保留'爲那些想知道的。 – thelatemail