简体   繁体   English

带有eventReactive(警告1)和renderDataTable(警告2)的R闪亮的widgetFunc()警告消息

[英]R shiny widgetFunc() warning messages with eventReactive(warning 1) and renderDataTable (warning 2)

I'm writing a shiny app and it was working perfectly fine and all of a sudden I am getting two warning messages. 我正在编写一个闪亮的应用程序,并且运行正常,突然间我收到了两个警告消息。 I have gone back to previous copies that ran fine and they are now showing the same error messages, so I am really confused.My code still runs and shows accurate results on the results tab of my shiny dashboard, but I want to track down the warning messages. 我回到以前运行良好的副本,现在它们显示相同的错误消息,所以我感到非常困惑。我的代码仍在运行,并在闪亮的仪表板的``结果''选项卡上显示了准确的结果,但我想跟踪警告消息。 I debug and the first warning goes away with the rendDataTable and the second warning comes up when I click a tab on my dashboard. 我进行了调试,当我单击仪表板上的选项卡时,第一个警告与rendDataTable消失,第二个警告出现。 The data is a data frame n X 10 with numeric and characters. 数据是具有数字和字符的数据帧n X 10。 Any help would be greatly appreciated. 任何帮助将不胜感激。 If I can provide any more info, just let me know. 如果我可以提供更多信息,请告诉我。

Here's 1: 这是1:

Warning in widgetFunc() :
  renderDataTable ignores ... arguments when expr yields a datatable object; see ?renderDataTable
Warning: Error in cat: argument 1 (type 'environment') cannot be handled by 'cat'
Stack trace (innermost first):
    74: cat
    73: eval
    72: eval
    71: withVisible
    70: evalVis
    69: utils::capture.output
    68: paste
    67: output$ntext1
     1: shiny::runApp

Here's 2: 这是2:

Warning in widgetFunc() :
  renderDataTable ignores ... arguments when expr yields a datatable object; see ?renderDataTable
tran_cd=c('I','E','R')
data_source_cd=c('1','2','3','4')
library(shiny)
library(shinydashboard)
library(xlsx)
if (!require("DT")) install.packages('DT')
sessionInfo()
library(DT)
ui <- dashboardPage(
  dashboardHeader(title = "ARC"),
  dashboardSidebar(sidebarMenu(
    menuItem("Settings", tabName = "settings", icon = icon("th")),
    menuItem("Results Table", tabName = "ResultsTable", icon = icon("ResultsTable")))),
  dashboardBody(
    tabItems(tabName = "ResultsTable",
              fluidPage(  
                headerPanel(
                  h1("Anomaly List", align="center",  style = "font-family: 'Verdana';font-weight: 800; line-height: 1.1;   color: #151515;")),
                # fluidRow(
                #     column(8, DT::dataTableOutput("table",width = "100%"),offset = 2)))),
                #                 # Create a new Row in the UI for selectInputs
                fluidRow(

                  column(4,
                         selectInput("sour",
                                     "Source Type:",
                                     c("All",
                                       unique(as.character(data_source_cd))))
                  ),
                  column(4,
                         selectInput("sour1",
                                     "Source Type:",
                                     c("All",
                                       unique(as.character(data_source_cd))))
                  ),
                  column(4,
                         selectInput("tran",
                                     "Transaction Type:",
                                     c("All",
                                       unique(as.character(tran_cd)))))),
                # Create a new row for the table.
                fluidRow(column(8, DT::dataTableOutput("table",width = "100%"),offset = 2))))
)))




library(shiny)
library(chron)
library(forecast)
library(ggplot2)
#names(iris) = gsub("\\.", "", names(iris))
setwd("C:/Users/Name/Documents/Projects/TrendAnalysis/Data")
source("C:/Users/Documents/Projects/TrendAnalysis/Rcode/App-1/MonitoringIngestion.R")
df=read.csv('list.csv',header=TRUE, stringsAsFactors = FALSE)
df=unique(df[,1:3])
dfrn=df[,2];
rownames(df)=make.names(dfrn, unique=TRUE)
shinyServer(function(input, output, session) {
  rv <- reactiveValues()
  rv$data <- NULL

  ntext1 <- eventReactive(input$gobutton,{
    if (input$dateRange[2]<input$dateRange[1]){print("You selected the date range option;however, the end date entered occurs before the starting date")}
    else{
      output$ntext1 <- renderText({print("Analysis Complete...Data Loading...")});
      observe({    ## will 'observe' the button press
        if(input$gobutton){ 
          print("here")  ## for debugging
          Singledate=input$date;
          Daterange=input$dateRange;
          Alldata=input$checkbox;
          SourceSelect=input$checkGroup1;
          TranSelect=input$checkGroup2;
          AirlineSelect=input$x3_rows_selected;
          Mag_level=input$slider1;
          rv$data <- MonitoringDDSIngestion(Alldata,Singledate,Daterange,SourceSelect,TranSelect,AirlineSelect,Mag_level)   ## store the data in the reactive value
        }
      })
    }
  }) 

  output$table <- DT::renderDataTable(DT::datatable({
     data <- rv$data
    if (input$sour != "All") {
      data <- data[data[,1] == input$sour,]
    }else{data}
     if (input$sour1 != "All") {
       data <-data[data[,2] == input$sour1,]
     }else{data}

     if (input$tran != "All") {
       data <-data[data[,3] == input$tran,]
     }else{data}

  }), filter='top')
})


MonitoringIngestion2 <-function(All,date1,date2, source_cd,tran_cd,airline_list,mag_level) {
    print(All); print(date1); print(date2); print(source_cd);print(tran_cd);print(airline_list);print(mag_level)
    setwd("C:Documents/Projects//Data")
    data = read.csv("November2015_December2015.csv",header=TRUE,sep=",",colClasses="factor")
  }
data  

You are getting this error because you are returning a DT::datatable AND you are also specifying filter='top' as one of the ... arguments to DT::renderDataTable . 之所以会出现此错误,是因为您要返回DT::datatable 并且还指定filter='top'作为DT::renderDataTable...参数DT::renderDataTable As the message is trying to tell you ... arguments are ignored since you are returning a DT::datatable . 当消息试图告诉您时...参数将被忽略,因为您返回的是DT::datatable This is because the ... arguments are intended to be passed through to the DT:datatable constructor. 这是因为...参数旨在传递给DT:datatable构造函数。

Either move filter='top' inside the DT::datatable constructor or return a data.frame and the filter='top will be used when DT::renderDataTable constructs a DT::datatable with your specified data.frame . DT::datatable构造函数内移动filter='top'或返回data.frame ,当DT::renderDataTable用指定的data.frame构造DT::datatable时,将使用filter='top

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM