【发布时间】:2026-01-03 16:45:02
【问题描述】:
我想以布尔方式直接使用一些selectInput。有没有可能这样做?
看看我的最小示例:
ui <- fluidPage(
selectInput("in", "some input", choices = c("0"=F, "1"=T))
)
server <- function(input, output, session) {
test_data <- read.csv("testfile",
header= input$in,
sep= ";")
}
删除引号的普通技巧(如here 所述)不会奏效。我还尝试强制 R 将输入的输出视为合乎逻辑的(通过as.logical),并且我尝试了一些简单的操作,例如print(..., quote=F)。没有任何效果...
【问题讨论】:
-
来自
selectInput的值将始终是字符。这就是 web/HTML/javascript 的工作方式。只需离开choices=c("F","T"),然后检查input$in=="T"即可获得逻辑值。 -
@MrFlick 谢谢,效果很好。你能告诉我如何显示除 F 或 T 之外的其他标签吗?如果我想显示多个不同的选择,例如 0、1、2、3,而 0 代表 FALSE,其他三 (3) 代表 True,该怎么办?
-
只要在
choices=中输入你想要的任何东西。如果所有其他都为真,只需测试input$in != "0"或任何假值。
标签: r input shiny selectinput