闪亮的反应式 if 语句在输出中给出“[1]”。如何删除这个?
shiny reactive if statement giving a "[1]" in output. how to remove this?
我有一个闪亮的服务器代码,其中有一个 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"
}
})
})
这应该让你继续:
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
--> 这就是为什么您使用双引号和 [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)
运行
我有一个闪亮的服务器代码,其中有一个 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"
}
})
})
这应该让你继续:
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
--> 这就是为什么您使用双引号和 [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)
运行