我有一个闪亮的应用程序类似于下面的例子。
x1c 0d1x的数据
我使用valueBox()
来返回一些值,这些值对应于数据中的特定变量。在本例中,我只是使用 Left 和 Right 作为示例,其中框根据值是否大于100而着色。我遇到的问题是,当我从数据中选择一个不存在于数据中的名称时,它会在 Jmeter 板主体中返回一个丑陋的错误,就像下面的附加图像一样。
我的首选项是,即使特定变量和/或名称的数据丢失,值框仍然可见。是的,我可以从“编辑”菜单编辑名称,但这不是一个选项,因为我要求所有可能的名称都存在。我希望值框读取类似 NA 的内容,而不是具有预期变量名称的特定值(例如,* 左 * 或 * 右 *)作为副标题(就像第一张图片中的副标题一样)。所有这些都将在白色背景上进行。这样,对于查看我的应用程序的其他最终用户来说,这看起来会干净得多。
有没有人有任何变通方法或解决方案,这个特定的问题使用我的示例数据/代码下面?
示例代码:
library(shiny)
library(shinydashboard)
library(tidyverse)
# Unique names for dropdown list.
names <- paste("Name", LETTERS[1:10])
# Example data.
set.seed(1)
dat <- data.frame(
name = rep(paste("Name", LETTERS[c(1:6, 9:10)]), times = 2),
date = rep(Sys.Date() + sample(1:10, 8), times = 2),
var = c(rep("Left", 8), rep("Right", 8)),
value = round(rnorm(16, 100, 20), 1)
)
##### APP #####
ui <- dashboardPage(
dashboardHeader(title = "Example App"),
dashboardSidebar(
sidebarMenu(
menuItem("Tab One",
tabName = "tab1")
)
),
dashboardBody(
tabItem(tabName = "tab1",
fluidRow(
box(selectInput("name", "Select Name:",
names,
selected = "Name A",
multiple = FALSE),
width = 12),
valueBoxOutput("box1", width = 2),
valueBoxOutput("box2", width = 2)
)
)
)
)
server <- function(input, output){
x <- reactive({
dat %>%
filter(name == input$name)
})
output$box1 <- renderValueBox({
valueBox(value = first(x()$value),
subtitle = "Left",
color = ifelse(first(x()$value) >= 100, "green", "red")
)
})
output$box2 <- renderValueBox({
valueBox(value = last(x()$value),
subtitle = "Right",
color = ifelse(last(x()$value) >= 100, "green", "red")
)
})
}
shinyApp(ui = ui, server = server)
字符串
1条答案
按热度按时间kyxcudwk1#
正如@Limey已经建议的那样,使用
if
或ifelse
来解释任何NA
值。然而,由于"white"
不是有效的颜色(参见错误消息),我使用"black"
来处理NA情况:字符串
x1c 0d1x的数据