【问题标题】:R shiny: how to make an operation based on textInputR闪亮:如何基于textInput进行操作
【发布时间】:2014-03-01 04:12:01
【问题描述】:

我想检查一个 textInput 是否已经完成,然后在此基础上运行一个操作。出于某种原因,以下简化代码不起作用。有什么问题吗?

library(shiny)

ui <- pageWithSidebar(
headerPanel("TEST"),
sidebarPanel(

textInput('C1', "","C1")
),

mainPanel(uiOutput("value"))

)

server <- function(input,output){

output$value <- renderUI({
#input$C1

if (is.null(input$C1)){
value <- 0}
else{
value <- 1
}
})

}

runApp(list(ui=ui,server=server))

高度赞赏任何建议。

干杯

【问题讨论】:

  • 下面的答案已经给了你解决方案,但我只想提醒你input$C1永远不会是NULL。当文本输入为空时,其值为空字符串""
  • 感谢您的精确!

标签: r shiny


【解决方案1】:

renderUI 内部的代码必须返回一个“tags”对象,即一个有效的 html。您的代码返回 0 或 1,在该上下文中它们都不是有效的返回值。 您所需要的只是将返回值包含在创建此类代码的内容中,例如,而不是

 value<-0

试试

 h4("0") 

一切都会好起来的。

【讨论】:

  • 嗨,阿米特。实际上,我想要注意 textInput 何时为空(即它的值为“”)并基于此做一些事情。使用此解决方案和我上面的代码,该值始终为 1,因为 is.null 永远不会为真。我尝试了不同的事情但没有成功。您知道指定条件的其他方法吗?
  • 啊,是的,你是对的!这行得通!它实际上也适用于 if (input$C1=='') 。 (我不知道为什么我以前没有考虑过这个)。非常感谢阿米特,非常感谢!
猜你喜欢
  • 2016-09-22
  • 1970-01-01
  • 2021-06-15
  • 2021-04-10
  • 1970-01-01
  • 2018-11-17
  • 2015-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多