Shiny应用selectInput单语句条件选择:返回HRR/LRR或两者组合
解决Shiny中selectInput选项对应返回值的问题
你遇到的ifelse失效问题,是因为ifelse会强制返回和输入长度一致的结果:当输入是长度1的字符串(比如"Both"),哪怕你指定返回长度2的向量c("HRR","LRR"),它也只会取第一个元素返回,所以才会只得到"HRR"。
给你两种一行代码的解决方案:
方案1:用switch函数
直接匹配选项返回对应值,逻辑清晰:
switch(input$your_select_id, HRR = "HRR", LRR = "LRR", Both = c("HRR", "LRR"))
把your_select_id换成你实际的selectInput输入ID即可。
方案2:简化的条件判断
因为HRR和LRR的返回值就是选项本身,所以可以直接用单条件判断:
if(input$your_select_id == "Both") c("HRR", "LRR") else input$your_select_id
这种写法更简洁,一行就能完全满足需求。
内容的提问来源于stack exchange,提问作者dabadav
相关产品推荐
相关产品推荐

