我有一个闪亮的服务器代码,其中我有一个for循环来检查用户输入9或没有。但是每当用户输入9或者什么都没有时,我将获得包含[1]以及“”
的输出如果我没有输入任何输出
[1]""
如果我输入9,则输出为
[1]"You are not working good"
如何避免这[1]以及双引号?
下面的是我的server.R代码
library(shiny)
shinyServer(function(input, output) {
output$name <- renderText({input$name})
output$whrs<-renderPrint({
if (input$whrs == "") {
""
} else
if(input$whrs == 9) {
"You are not working good"
}
})
})
答案 0 :(得分:2)
这应该让你继续前进:
library(shiny)
server <- function(input, output) {
output$whrs<-renderText({
if (input$text == "") {
""
} else
if(input$text == 9) {
"You are not working good"
}
})
}
ui <- shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
),
mainPanel(selectInput("text","Enter text",choices=c("","1","9")),
textOutput("whrs"))
)
))
shinyApp(ui = ui, server = server)
你还没有提供完整的代码,而且你已经提供的那个有一些错误,这就是为什么我刚刚创建的小例子可以帮助你进一步。
首先,您应该使用renderText
而不是renderPrint
- &gt;这就是为什么你得到双引号和[1]
,由于打印格式。
答案 1 :(得分:1)
另一种选择是使用switch
ui <- shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
),
mainPanel(selectInput("text","Enter text",choices=c("","1","9")),
textOutput("whrs"))
)
))
server <- function(input, output) {
res <- reactive({
switch(input$text,
`""` = "",
`9` = "You are not working good",
`1` = NA
)
})
output$whrs<-renderText({
res()
})
}
shinyApp(ui = ui, server = server)
运行