如何从闪亮的selectInput中删除“”?
Posted
技术标签:
【中文标题】如何从闪亮的selectInput中删除“”?【英文标题】:How to remove "" from shiny selectInput? 【发布时间】:2021-09-23 18:29:38 【问题描述】:我想以布尔方式直接使用一些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"
或任何假值。
【参考方案1】:
in
是 R 中的保留字。您仍然可以使用反引号引用输入名称以避免错误。此外,input[['in']]
也可以使用。最后我们可以使用as.logical
将字符串转换为布尔值。
应用程序:
注意:在运行应用程序之前替换“PATHTOFILE”。
library(shiny)
ui <- fluidPage(
selectInput("in", "some input", choices = c("0"=F, "1"=T))
)
server <- function(input, output, session)
test_data <- reactive(
read.csv("PATHTOFILE",
header= as.logical(input$`in`),
sep= ";"))
observe(
print(input$`in`)
print(head(test_data()))
)
shinyApp(ui, server)
【讨论】:
以上是关于如何从闪亮的selectInput中删除“”?的主要内容,如果未能解决你的问题,请参考以下文章
刷新从 RODBC 检索到的闪亮 DropDownList 上的 selectInput
如何对齐闪亮的输入框,特别是 selectInput 和 numericInput
在闪亮的 R 中使用 selectInput 来选择和过滤行,而不是选择列
如何仅使用列表名称创建 selectInput? (不显示列表内容)闪亮