【问题标题】:What do ..1 and ..2 stand for in R? [duplicate]..1 和 ..2 在 R 中代表什么? [复制]
【发布时间】:2014-10-25 13:22:28
【问题描述】:

引用自 R 语言定义:

请注意,以句点开头的标识符默认情况下不是 由 ls 函数列出,并且“...”和“..1”、“..2”等是 特别的。

以下标识符有特殊含义,不能使用 对于对象名称 if else 重复 while function for in next break TRUE FALSE NULL Inf NaN NA NA_integer_ NA_real_ NA_complex_ NA_character_ ... ..1 ..2 等等。

但是它没有提供任何进一步的细节。谁能详细说明一下?

【问题讨论】:

    标签: r reserved-words


    【解决方案1】:

    这些用于从函数的... 参数中按位置提取值。请参见下面的示例:

    myfun <- function(...) {
       list(a = ..1, b = ..2, c = ..3)
    }
    
    myfun(1,2,3)
    # $a
    # [1] 1
    # $b
    # [1] 2
    # $c
    # [1] 3
    
    myfun(3,2,1)
    # $a
    # [1] 3
    # $b
    # [1] 2
    # $c
    # [1] 1
    
    myfun(1:5, "hello", letters[1:3])
    # $a
    # [1] 1 2 3 4 5
    # $b
    # [1] "hello"
    # $c
    # [1] "a" "b" "c"
    

    如果您尝试从控制台调用其中之一,这种用法就会变得很明显:

    > ..1
    Error: ..1 used in an incorrect context, no ... to look in
    

    【讨论】:

    • 好答案。看不出这在哪里有用。 +1
    • methods:::rbind中有一个例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多