r - 如何在 R 和 S 函数中获取 list(...) 的值

标签 r s

我很困惑 list(...)适用于 R 和 S-plus。对于以下代码

pp <- function(x, ...) { print( length( list(...)))}
pp(1,,,1)

在 S-Plus 中,它有效,但在 R 中,它给出“Error in print(length(list(...))) : argument is missing, with no default

我更感兴趣的是它在 R 中的工作原理以及如何获得 list(...) 的值在 R 函数中。

最佳答案

我不确定为什么 S-plus 中允许使用该语法,而 R 中不允许。

不过,这里有一些 R 代码,它们具有基本相同的效果:

pp <- function(x, ...) {
    print(length(as.list(match.call(expand.dots=FALSE))[["..."]]))
}
pp(1,,,1)
# [1] 3

或者,使用技巧 from here :
ppp <- function(x, ...) {
    print(length(substitute(...())))
}
ppp(1,,,1)
# [1] 3

关于r - 如何在 R 和 S 函数中获取 list(...) 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16972181/

相关文章:

r - 提取多个时间序列的子集

R - 查询图形/绘图窗口的位置

r - 无法将XML元素与R中的XPath匹配

r - 什么是 For 循环?为什么R中不需要它?

python - 如何在 sunOS 启动时运行我的 python 脚本

r - 从 S-Plus 调用 R?

r - 结合轴归一化绘图

r - 在 R 中导出 300dpi tiff 的绘图