在R中向用户显示警告
如何在R中向用户显示警告。用户的输入是正确的,但输出不适合显示。其目的是提醒用户,由于数据太多,仅显示一个子集数据。警告仅在控制台中显示。多谢各位 这里有一个伪代码来解释问题,因为原来的代码很长。可渲染文件中有一条警告。它的目的是检查数据,如果数据很大,则只显示前几项 用户界面 服务器.R在R中向用户显示警告,r,shiny,R,Shiny,如何在R中向用户显示警告。用户的输入是正确的,但输出不适合显示。其目的是提醒用户,由于数据太多,仅显示一个子集数据。警告仅在控制台中显示。多谢各位 这里有一个伪代码来解释问题,因为原来的代码很长。可渲染文件中有一条警告。它的目的是检查数据,如果数据很大,则只显示前几项 用户界面 服务器.R shinyServer(function(input, output) { data <- reactive({ validate( need(input$data !=
shinyServer(function(input, output) {
data <- reactive({
validate(
need(input$data != "", "Please select a data set")
)
get(input$data, 'package:datasets')
})
output$plot <- renderPlot({
hist(data()[, 1], col = 'forestgreen', border = 'white')
})
output$table <- renderTable({
warning("Warning message.")
head(data())
})
})
更新:
我在这方面做了更多的工作,并使警告面板有条件
但是,只有在每页都包含textOutputwarnstat时,它才起作用。我假设是因为它没有设置javascript变量output.warnstat,除非我这样做
您可以在UI中构建一个警告面板,并进行相应的设置。下面是一个简单的示例,但它可能比verabtim打印语句更复杂
用户界面
服务器.r
带条件警告面板:
无条件警告面板:
更新:
我在这方面做了更多的工作,并使警告面板有条件
但是,只有在每页都包含textOutputwarnstat时,它才起作用。我假设是因为它没有设置javascript变量output.warnstat,除非我这样做
您可以在UI中构建一个警告面板,并进行相应的设置。下面是一个简单的示例,但它可能比verabtim打印语句更复杂
用户界面
服务器.r
带条件警告面板:
无条件警告面板:
我使用这个包装功能来捕获错误、警告和消息,并将它们显示为用户可拒绝的通知 安静地%purrr::安全地 作用{
res我使用此包装功能捕获错误、警告和消息,并将它们显示为用户可拒绝的通知 安静地%purrr::安全地 功能{
res可能会帮助您编写代码。最少的代码将非常有帮助。@MLavoie验证将停止,与警告不同。也有人提出了类似的问题,并以不同的方式得到了答案:请帮您编写代码。最少的代码将非常有帮助。@MLavoie验证将停止,与警告不同。类似的问题这个问题也被问到了,并得到了一个不同的答案:这是一个解决方案。但有点复杂。我使用textOutput和renderText来显示一些信息,如果它不是警告的话。谢谢。如果您在服务器函数中添加以下内容,您可以忽略textOutputwarnstat:OutputOptions输出,warnstat,suspendWhenHidden=FALSE这是一个解决方案。但有点复杂。如果不是警告,我使用textOutput和renderText来显示一些信息。谢谢。如果将以下内容添加到服务器函数中,您可以忽略textOutputwarnstat:OutputOptions输出,warnstat,suspendWhenHidden=FALSE
shinyServer(function(input, output) {
data <- reactive({
validate(
need(input$data != "", "Please select a data set")
)
get(input$data, 'package:datasets')
})
output$plot <- renderPlot({
hist(data()[, 1], col = 'forestgreen', border = 'white')
})
output$table <- renderTable({
warning("Warning message.")
head(data())
})
})
shinyUI(fluidPage(
titlePanel("Validation App"),
sidebarLayout(
sidebarPanel(
selectInput("data", label = "Data set",
choices = c("", "mtcars", "faithful", "iris"))
),
# Show a plot of the generated distribution
mainPanel(
conditionalPanel(condition = "output.warnstat == 'Error'",
verbatimTextOutput("warnmsg")),
tableOutput("table"),
plotOutput("plot")
)
)
))
shinyServer(function(input, output) {
errstat <- reactive({
ifelse (input$data=="mtcars",T,F)
})
data <- reactive({
validate(
need(input$data != "", "Please select a data set")
)
get(input$data, 'package:datasets')
})
output$plot <- renderPlot({
hist(data()[, 1], col = 'forestgreen', border = 'white')
})
output$table <- renderTable({
warning("Warning message.")
head(data())
})
output$warnmsg <- renderPrint({
if (errstat()){
print("Warning message - blah blah blah")
print(input$data)
head(data())
} else {
print("No error")
}
})
output$warnstat <- renderText({ifelse(errstat(),"Error","No error") })
outputOptions(output, "warnstat", suspendWhenHidden=FALSE)
})