R 从几个可选的文本输入字段创建向量或列表

R 从几个可选的文本输入字段创建向量或列表,r,shiny,R,Shiny,我想构建一个命令,让用户定义最多5个可选参数(params1到params5),这些参数被添加到以“-p”分隔的命令字符串中 -p var1=1-p var2=“一”-p option1=“空”-p option2=“无评论” 用户界面: 例如,在我当前的界面中,用户可以将它们全部留空或填充一个或多个 是否有一个优雅的方式(优于我的长和失败代码)来处理它们,使用一些应用魔术,只考虑用户输入了一些内容的文本输入字段? 我尝试使用get(paste0(“input$params”,I))来命名5个输

我想构建一个命令,让用户定义最多5个可选参数(params1到params5),这些参数被添加到以“-p”分隔的命令字符串中

-p var1=1-p var2=“一”-p option1=“空”-p option2=“无评论”

用户界面:

例如,在我当前的界面中,用户可以将它们全部留空或填充一个或多个

是否有一个优雅的方式(优于我的长和失败代码)来处理它们,使用一些应用魔术,只考虑用户输入了一些内容的文本输入字段?

我尝试使用get(paste0(“input$params”,I))来命名5个输入,并获取5个值,但shiny抱怨

服务器:

params <- reactive({
    parlist <- list()
    parstring <- ""
    for (i in 1:5){
        parval <- try(get(paste0("input$params",i)))
        if (exists(parval)){
            parlist <- c(parlist, parval)
        }
    }
    if (exists(parlist)){
        parstring=paste0(" -p ", stri_join_list(parlist, collapse= " -p "))
    } else {
        parstring=""
    }
    return(parstring)
})
我现在的问题是测试并将现有的textInputs值(input$params1…input$params5)添加到向量或列表中,然后在代码中使用

应该这样做的是:


params我稍微调整了一下,以满足我的需要
paste0(“-p”,parlist,collapse=”“)
我还发现了一个很好的例子,可以动态创建5个(或更多)文本字段(经过长时间搜索,最终找到这个:-)=>
params <- reactive({
    parlist <- list()
    parstring <- ""
    for (i in 1:5){
        parval <- try(get(paste0("input$params",i)))
        if (exists(parval)){
            parlist <- c(parlist, parval)
        }
    }
    if (exists(parlist)){
        parstring=paste0(" -p ", stri_join_list(parlist, collapse= " -p "))
    } else {
        parstring=""
    }
    return(parstring)
})
Error in get(paste0("input$params", i)) : 
  object 'input$params1' not found
Error in get(paste0("input$params", i)) : 
  object 'input$params2' not found
Error in get(paste0("input$params", i)) : 
  object 'input$params3' not found
Error in get(paste0("input$params", i)) : 
  object 'input$params4' not found
Error in get(paste0("input$params", i)) : 
  object 'input$params5' not found
Warning: Error in exists: invalid first argument