由input$goButton
触发的server.R中的actionButton
是否应该在RStudio Shiny的if
语句中? Shiny网页上的示例显示:
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("Click the button"),
sidebarPanel(
sliderInput("obs", "Number of observations:",
min = 0, max = 1000, value = 500),
actionButton("goButton", "Go!")
),
mainPanel(
plotOutput("distPlot")
)
))
和
library(shiny)
shinyServer(function(input, output, message) {
output$distPlot <- renderPlot({
# Take a dependency on input$goButton
input$goButton
# Use isolate() to avoid dependency on input$obs
dist <- isolate(rnorm(input$obs))
hist(dist, main=isolate(paste(system(paste("echo", dist[1],"> /tmp/1 && md5sum /tmp/1"),intern=TRUE),collapse='')))
})
})
我有一个稍微复杂的例程,上面的例子有更多的语句,事件发生在用户点击Go按钮之前的事件。这让我觉得当被动句中的一个语句是R input$goButton
调用时,system()
被忽略。
Shiny Server v1.1.0.10000
Node.js v0.10.21
packageVersion: 0.10.0
有什么想法吗?
答案 0 :(得分:3)
我这就是你想要的?每当按下按钮时,它将增加计数+ 1(从0开始),因此有return()
&#34;没有&#34;如果没有按下
rm(list = ls())
library(shiny)
runApp(list(ui = pageWithSidebar(
headerPanel("Click the button"),
sidebarPanel(
sliderInput("obs", "Number of observations:",min = 0, max = 1000, value = 500),
actionButton("goButton", "Go!")
),
mainPanel(plotOutput("distPlot"))),
server = function(input, output,session) {
my_data <- reactive({
if(input$goButton == 0)
{
return()
}
isolate({
input$goButton
dist <- isolate(rnorm(input$obs))
hist(dist, main=isolate(paste(system(paste("echo", dist[1],"> /tmp/1 && md5sum /tmp/1"),intern=TRUE),collapse='')))
})
})
output$distPlot <- renderPlot({my_data()
})
}
)
)