图表不显示在闪亮[R]

时间:2016-01-04 18:48:25

标签: r shiny shinydashboard

我在R中使用闪亮的包来从用户那里获取输入并将X和Y变量相互绘制为线图。没有显示错误。除了图形之外还显示任何内容。请有人帮助为什么图形不显示。这是 ui.r文件

library(shiny) # load the shiny package
setwd("C:/indiahacks2")
dat<-read.csv("final.csv")

# Define UI for application
shinyUI(fluidPage(

  # Header or title Panel 
  titlePanel(h4('Impulse Response on VAR MODEL', align = "center")),

  # Sidebar panel
  sidebarPanel(



    selectInput("Impulse", label = "1. Select the Impulse Variable", 
                choices = names(dat)), 
    selectInput("Response", label = "1. Select the Response Variable", 
                choices = names(dat)),


    sliderInput("Lag", "2. Select the number of histogram BINs by using the slider below", min=0, max=25, value=10),

    radioButtons("colour", label = "3. Select the color of histogram",
                 choices = c("Green", "Red",
                             "Yellow"), selected = "Green")
  ),

  # Main Panel
  mainPanel(
    textOutput("text1"),
    textOutput("text2"),
    textOutput("text3"),
    textOutput("text3"),
    plotOutput("myhist")

  )

)
)

Server.r

library(shiny) # Load shiny package

dat<-read.csv("final.csv")

shinyServer(


  function(input, output) {

    output$text1 <- renderText({ 
      colm = as.numeric(input$Impulse)
      paste("Impulse Variable is", names(dat[colm]))

    })

    output$text2 <- renderText({ 
      paste("Color of plot is", input$radio)
    })

    output$text3 <- renderText({ 
      paste("Number of Lags is", input$Lag)
    })
    output$text4 <- renderText({ 
      colm = as.numeric(input$Response)
      paste("Response Variable is", names(dat[colm]))

    })

    output$myhist <- renderPlot(

      {
        colm = as.numeric(input$Impulse)
        colm1 = as.numeric(input$Response)
        plot(dat[,colm],dat[,colm1])})    
})

1 个答案:

答案 0 :(得分:3)

经过进一步检查后,您的脚本出现了一些问题:

1)colm无法引用output$text4。这是因为范围......

2)当您注释掉output$text4代码时,我现在在plot调用中收到一个未定义的列错误。这是因为强制您的列选择返回数字NA

下面应该做你想要的。

这是server.R代码:

library(shiny) # Load shiny package
dat<-read.csv("final.csv")

shinyServer(

function(input, output) {

    output$text1 <- renderText({ 
        colm = as.numeric(input$Impulse)
        paste("Impulse Variable is", columns()[2])

    })
    output$text2 <- renderText({ 
        paste("Color of plot is", input$radio)
    })

    output$text3 <- renderText({ 
        paste("Number of Lags is", input$Lag)
    })
    output$text4 <- renderText({ 
        colm = as.numeric(input$Response)
        paste("Response Variable is", columns()[2])

    })

    columns<-reactive({
        colm = as.character(input$Impulse)
        colm1 = as.character(input$Response)
        return(c(colm, colm1) )
    })

    output$myhist <- renderPlot(

        {
            plot(dat[,columns()[1]],dat[,columns()[2]],type="b")})
})

* Ui.R

# Define UI for application
library(shiny)
shinyUI(fluidPage(

# Header or title Panel 
titlePanel(h4('Impulse Response on VAR MODEL', align = "center")),

# Sidebar panel
sidebarPanel(



    selectInput("Impulse", label = "1. Select the Impulse Variable", 
                choices = names(dat)), 
    selectInput("Response", label = "1. Select the Response Variable", 
                choices = names(dat)),


    sliderInput("Lag", "2. Select the number of histogram BINs by using the slider below", min=0, max=25, value=10),

    radioButtons("colour", label = "3. Select the color of histogram",
                 choices = c("Green", "Red",
                             "Yellow"), selected = "Green")
),

# Main Panel
mainPanel(
    textOutput("text1"),
    textOutput("text2"),
    textOutput("text3"),
    textOutput("text4"),
    plotOutput("myhist")

)

)