R Shiny。 “错误:没有适用于'xtable'的方法应用于类的对象”c('double','numeric')“

时间:2015-06-06 04:23:10

标签: r shiny

我正在尝试创建一个交互式数据集,我需要将其子集进行计算。当我尝试提取某些行和列时,我得到关于xtable被应用于类“C('double','numeric')”的对象的错误消息。这是我的代码。

ui.r

library(shiny)
require(ggplot2)

shinyUI(fluidPage(

  titlePanel("Vasicek Model Example"),

  sidebarLayout(
    sidebarPanel(
      numericInput("sim", "Simulations", value = 100),
      numericInput("loans", "Loans", value = 10),
      numericInput("M", "Systemic Risk Factor", value = 0),
      numericInput("rho", "Firm Correlation", value = 0),
      sliderInput("bins", "Number of Bins:", min = 1, max = 50, value = 30),
      submitButton("Submit")
    ),
    mainPanel(
      tabsetPanel(
        tabPanel("Debug", tableOutput("probs"), tableOutput("dftable")),
        tabPanel(plotOutput("distPlot"), tableOutput("sumtable"),
                 tableOutput("tabs"))
    )
  )
)))

server.r

library(shiny)
require(ggplot2)

shinyServer(function(input,output){

  TMo <- reactive({ 
         matrix(c(.90, .05, .04, .01,
                  .05, .80, .10, .05,
                  .05, .25, .60, .10,
                  .00, .00, .00, 1.0), nrow=4, ncol=4, byrow=T)
     })
   Pprob <- reactive({
     TMo()[1:3, 4]
   })

   output$probs <- renderTable({
     Pprob()
   })
   plotdata <- reactive({
     R <- vector()
     c <- vector()
     DefRate <- vector()
     groups <- vector()
     ctr <- 0

     for(group in 1:3){
       c[group] <- qnorm(Pprob()[group])
       for(i in 1:input$sim){
         e <- matrix(data = rnorm(n = input$loans, mean = 0, sd = 1))
         ctr <- ctr + 1
         default <- 0
         for(j in 1:input$loans){
           R[j] <- sqrt(input$rho) * M + sqrt(1 - input$rho) * e[j]
           if(R[j] <= c[group]){
             default + 1
           }
           if(j == input$loans){
             DefRate[ctr] <- default/input$loans
             if(group == 1){
               groups[ctr] = 'A'
             }
             else if(group == 2){
               groups[ctr] = 'B'
             }
             else{
               groups[ctr] = 'C'
             }
           }
           if(group == 3 & i == input$sims & j == input$loans){
             DefData <- cbind(DefRate,groups)
             as.data.frame(DefData)
           }
         }
       }
     }
   }) 
   output$dftable <- renderTable({
     head(plotdata())
   })

  #output$distPlot <- renderPlot({
    #bins <- seq(min(x), max(x), length.out = input$bins + 1)
    #DR_plots <- ggplot(DData, aes(x=DData$Default_Rate, fill=DData$Credit_Rating)) 
    #DR_Hist_options <- geom_histogram(binwidth = .01, alpha=.5, position = "identity")
    #DR_Hist <- DR_plots + DR_Hist_options
    #DR_Hist
    #hist(x, breaks = bins, col = 'darkgray', border = 'white',
         #main = "Default Rate Distribution", xlab = "Default Rates",
         #ylab = "Frequency")
  #})


  #output$tabs <- renderTable({
    #x <- DR_Data
    #head(x)
  #})

})

原谅已注释掉的部分。我正在调试以试图找出问题的根源。感谢您的帮助。

0 个答案:

没有答案