为啥我们不能循环遍历`...`?
Posted
技术标签:
【中文标题】为啥我们不能循环遍历`...`?【英文标题】:Why can't we loop over `...`?为什么我们不能循环遍历`...`? 【发布时间】:2015-12-02 07:33:23 【问题描述】:为什么以下不起作用?
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
【问题讨论】:
【参考方案1】:它不起作用,因为 ...
对象类型在解释代码中不可访问。您需要将对象捕获为 nongkrong 显示的列表:
for(i in list(...))
看看R手册here
【讨论】:
也可以用c
包裹起来如c(...)
@Remi.b 作为旁注,您实际上可以访问 ...
的特定元素,如 ..1
、..2
等。对于循环来说不是非常有用,但您会看到从不时作为获得特定项目的捷径。
@joran - 很漂亮,这在?Reserved
中有记录,供那些想知道的人使用。以上是关于为啥我们不能循环遍历`...`?的主要内容,如果未能解决你的问题,请参考以下文章