我想在Shiny R.写一个简单的应用程序 我想有两个输入(x和y)并绘制相对散点图。代码如下
library(shiny)
ui<-fluidPage(
headerPanel('Plot'),
sidebarPanel(
sliderInput(inputId = 'x',label='X', value = 1,min=1,max=3),
sliderInput(inputId = 'y',label='Y', value = 1,min=1,max=3)
),
mainPanel(
plotOutput('plot')
)
)
server<-function(input,output) {
x <- reactive({input$x})
y <- reactive({input$y})
output$plot <- renderPlot({plot(x,y)})
}
shinyApp(ui=ui, server=server)
代码产生错误,
cannot coerce type 'closure' to vector of type 'double'
我该如何纠正?
非常感谢
答案 0 :(得分:2)
X和Y是函数,因此将()
添加到它们
output$plot <- renderPlot({plot(x(),y())})
答案 1 :(得分:0)
您可以使用此服务器参数:
server <- function(input,output) {
output$plot <- renderPlot(plot(input$x,input$y))
}
答案 2 :(得分:0)
input
值已经是反应性的,因此无需将它们包装在reactive()
函数中。这是一种更整洁,更有效的工作方式:
library(shiny) {
ui<-fluidPage(
headerPanel('Plot'),
sidebarPanel(
sliderInput(inputId = 'x', label= 'X', value = 1, min= 1, max= 3),
sliderInput(inputId = 'y', label= 'Y', value = 1, min= 1, max= 3)
),
mainPanel(plotOutput('plot'))
server<-function(input, output) {
output$plot<- renderPlot({
plot(input$x, input$y)
})
}
shinyApp(ui= ui, server= server)