2015-09-06 204 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