2016-03-19 7 views
0

Ich schreibe eine glänzende App und es funktionierte einwandfrei und plötzlich bekomme ich zwei Warnmeldungen. Ich bin zurück zu früheren Kopien, die gut lief und sie zeigen jetzt die gleichen Fehlermeldungen, so dass ich wirklich verwirrt bin. Mein Code läuft immer noch und zeigt genaue Ergebnisse auf der Registerkarte Ergebnisse meiner glänzenden Dashboard, aber ich möchte die aufspüren Warnmeldungen. Ich debugge und die erste Warnung verschwindet mit der rendDataTable und die zweite Warnung kommt auf, wenn ich auf eine Registerkarte auf meinem Dashboard klicke. Die Daten sind ein Datenrahmen n X 10 mit Zahlen und Zeichen. Jede Hilfe würde sehr geschätzt werden. Wenn ich weitere Informationen zur Verfügung stellen kann, lassen Sie es mich wissen.R glänzend widgetFunc() Warnmeldungen mit eventReactive (Warnung 1) und renderDataTable (Warnung 2)

Hier ist 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 

hier 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 
+2

Ich habe gerade Ihren Code ausgeführt, und was wäre toll, wenn Sie die Datei MonitoringIngestrion.R und list.csv zur Verfügung stellen würden, damit ich damit herumspielen kann, wenn Sie damit einverstanden sind. – InfiniteFlashChess

+0

@ InfiniteFlashChess danke für Ihre Antwort. Ich habe die ursprüngliche Funktion MonitoringInger durch etwas einfacheres ersetzt, um zu sehen, ob es dieser Code war (siehe oben). Es lädt nur eine Datendatei und ich bekomme immer noch die gleiche Warnung (1). Die Datendatei ist ein nx7-Datenrahmen mit numerischen und Zeichenspalten. Das seltsame Ding ist, dass ich verschiedene Versionen von Server, UI und Monitoring-Ingestion habe, während ich sie speichere, während ich mitfahre, damit ich immer zurück gehen kann und sogar die alte Version, die vollkommen in Ordnung war, die gleiche Warnung haben. Ich kann nicht genau herausfinden, wo es produziert wird. Schwer zu debuggen in glänzend. – Tracy

+1

Haben Sie in letzter Zeit Ihre Pakete aktualisiert? –

Antwort

1

Sie erhalten diesen Fehler, weil Sie eine DT::datatable zurückkehren UND geben Sie an, auch filter='top' als ein der ... Argumente zu DT::renderDataTable. Wie die Nachricht versucht, Ihnen zu sagen ... Argumente werden ignoriert, da Sie eine DT::datatable zurückgeben. Dies liegt daran, dass die Argumente ... an den Konstruktor DT:datatable übergeben werden sollen.

Entweder bewegen filter='top' innerhalb des DT::datatable Konstruktor oder zurückgeben data.frame und die filter='top wird verwendet, wenn DT::renderDataTabledata.frame eine DT::datatable mit Ihrer angegebenen Konstrukten.