我对在某些函数中使用省略号(...)感到困惑,即如何将包含参数的对象作为单个参数传递.

在Python中,它被称为"解包参数列表",例如.

>>> range(3, 6)             # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> range(*args)            # call with arguments unpacked from a list
[3, 4, 5]

例如,在R中,函数file.path(...)使用省略号.我希望有这样的行为:

> args <- c('baz', 'foob') 
> file.path('/foo/bar/', args)
[1] 'foo/bar/baz/foob'

相反,我得到了

[1] 'foo/bar/baz' 'foo/bar/foob'

其中args个元素没有"拆封"并同时进行判断.有相当于Python *arg的R吗?

推荐答案

语法没有那么漂亮,但这确实起到了作用:

do.call(file.path,as.list(c("/foo/bar",args)))

do.call接受两个参数:一个函数和一个调用该函数的参数列表.

R相关问答推荐

从R中的地址提取街道名称

按条件计算观察次数

根据固定值范围在tible中添加新行

计算R中的威布尔分布的EDF

根据R中的另一个日期从多列中 Select 最近的日期和相应的结果

如何在编辑列时更新可编辑数据表,并使用该表在Shiny中执行连续计算

为什么舍入POSIXct会更改能力以匹配等效的POSIXct?

为什么我的基准测试会随着样本量的增加而出现一些波动?

以更少间隔的较小表中的聚合离散频率表

如何通过ggplot2添加短轴和删除长轴?

从一个列表的框架中移除列表包装器

绘制采样开始和采样结束之间的事件

警告消息";没有非缺失的参数到min;,正在返回数据中的inf";.表分组集

使用不同的定性属性定制主成分分析中点的 colored颜色 和形状

如何删除R中除数字元素以外的所有元素

计算使一组输入值最小化的a、b和c的值

是否可以将线性模型的p值添加到tbl_summary中

Conditional documentr::R中数据帧的summarize()

如何在访问之前下载的输入时同时上传和处理所有指定的shiny 输入?

使用列名和r中的前缀 Select 列的CREATE函数