You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何通过...参数拼接多个输入值并以加号分隔

问题背景

需要实现一个函数,接收...省略号传入的任意数量变量,将所有变量拼接为单个字符串,变量之间以+连接。
初始错误实现代码:

rhs <- function(...) {
  paste(..., " + ")
}

测试调用:

rhs("a", "c")

预期输出:

"a + c"

实际错误输出:

"a c  + "
错误原因

paste()函数的核心规则是:

  • 位置参数...里的所有内容都会被当作待拼接的独立元素
  • sep参数控制不同输入向量对应位置元素之间的连接符,默认值为空格
  • collapse参数控制将结果向量折叠为单个字符串时,元素之间的连接符,默认值为NULL(即不折叠,返回向量)

原代码把" + "放在了...传参位置,相当于把它当成了一个待拼接的普通元素,既没有指定元素间的连接符,还额外多拼了一个加号字符串,自然会出现末尾多余空格和加号的问题。

修正方案

最稳妥的实现方式是先把...传入的所有参数合并为字符向量,再通过collapse参数指定+作为分隔符折叠为单个字符串,代码如下:

rhs <- function(...) {
  # 合并所有传入参数
  input_params <- c(...)
  # 用+作为分隔符拼接为单个字符串
  paste(input_params, collapse = " + ")
}

测试调用rhs("a", "c")即可得到预期结果"a + c",传入更多参数时也能正常工作,比如rhs("x", "y", "z")会返回"x + y + z"。

内容的提问来源于stack exchange,提问作者writer_typer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 06:54:26