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

如何在R Plumber API中传入字符串向量?

解决Plumber API接收逗号分隔字符串作为列向量的问题

问题核心:你传入的cols是单个字符串(如"V1,V3"),而R的数据框索引需要的是字符向量,直接用dat[, cols]会尝试寻找名为"V1,V3"的列,自然报错。

解决方案:将逗号分隔字符串转换为字符向量

在Plumber的处理函数中,对传入的cols参数做两步处理:

  • 用strsplit()按逗号分割字符串
  • 用trimws()去除每个元素的多余空格(兼容带空格的输入,如"V1, V3")
  • 转换为字符向量

修改后的完整代码

library(plumber)
library(dplyr)

#* Do means
#* @param cols The columns I want (comma-separated, e.g. V1,V3 or V1, V3)
#* @get /mean
function(cols) {
    dat <- data.frame(V1 = rnorm(10), V2 = rnorm(10), V3 = rnorm(10))
    # 处理cols参数:分割+去空格+转向量
    cols_vec <- trimws(unlist(strsplit(cols, ",")))
    tmp <- dat[, cols_vec]
    colMeans(tmp)
}

pr("c:/path2file/plumber.R") %>% pr_run(port=8000)

测试说明

在Swagger界面的cols参数框中输入V1,V3或V1, V3,发送请求后就能得到对应列的均值,和你纯R中的实现效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 05:32:48