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

R中svDialogs包dlgInput对话框字符向量单行拼接显示问题

问题解决方法

直接修改原代码的写法

你只需要在拼接提示语时,先通过paste()的collapse参数将多元素的temp向量合并为单个字符串即可,修改后的代码如下:

userInput <-  dlgInput(paste("Enter info (these already exist:", paste(temp, collapse = ", "), ")"))$res

原理说明

你之前遇到的问题根源有两个:

  1. 默认paste()对多元素向量是逐元素配对拼接,temp有3个元素就会生成3个独立的提示字符串,dlgInput拿到长度为3的字符向量就会每行显示一个
  2. 直接把多元素向量传给str_interp、fn$paste这类插值函数时,函数会默认输出R的向量字面量打印格式,所以会带上多余的c()结构和转义引号

paste(temp, collapse = ", ")会把temp的所有元素用, 作为分隔符合并成长度为1的单个字符串"one, two, three",再和固定提示语拼接后就是符合要求的单行提示。

如果你想用字符串插值类函数实现,写法如下:

# stringr::str_glue 写法
prompt <- stringr::str_glue("Enter info (these already exist: {paste(temp, collapse = ', ')})")
userInput <- dlgInput(prompt)$res

该写法完全兼容你当前使用的R 4.1.1、macOS Catalina系统环境,不需要额外安装依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:51:00