我在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])})
})
答案 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")
)
)