【发布时间】:2016-05-09 04:36:19
【问题描述】:
我会问。 Shiny 是否喜欢在输入后始终刷新代码? 首先我在 ui 中编码:
box( ##title="Quality Attributes",
selectInput("att_ViewChart", width = '100%',label="Quality Attributes",
##multiple = TRUE,
choices=list(
"-",
"Suitability",
"Security",
)
)
),
dataTableOutput("tabelstatus")
然后我在服务器中编码:
server = function(input, output) {
withProgress(message = "AAAAA",{
DateStatus_Sui<-c(1,2,3,4,NA,5,6,NA,7)
TimeStatus_Sui<-c(11,22,33,44,NA,55,66,NA,88)
status_Sui<-c(11,22,44,55,66,77,88)
jumlah<-7
})
if(input$att_ViewChart=="Suitability"){
Date<-DateStatus_Sui[!is.na(DateStatus_Sui)]
Time<-TimeStatus_Sui[!is.na(TimeStatus_Sui)]
Status<-status_Sui
Observation<-1:jumlah
#output
tabelstatus<-data.frame(Observation,Date,Time,Status)
output$tabelstatus<-renderDataTable(tabelstatus)
}
我希望当我运行应用程序时。 Shiny 将处理代码(由进度条'AAAAA' 显示)然后,如果我选择 Suitability,它会进行更多处理,然后显示表格。但是我发现进度条又出现了。在我看来,它从头开始重新运行代码。如何解决这个问题?谢谢
【问题讨论】:
-
你能把你的
server.R全部发上来吗?或者至少做一个完整的可重现的例子? -
@Symbolix 它是可重现的代码。真正的要复杂得多。不工作吗?
-
"reproducible" 意味着我可以简单地将您的代码复制并粘贴到我的 R 环境中,它就可以工作。我不能用你的代码做到这一点。如果没有看到您的全部
server.R,就很难诊断出您的问题。我猜你在reactive()表达式中没有你的if(input$att_ViewChart...)。要么,要么你需要isolate( )if(input$...)条件。 -
@symbolix。它可以重现吗?我只是添加服务器
-
您可以自行检查它是否可重现(不是):启动一个新的 R 会话,仅使用您在上面提供的内容创建新文件,然后尝试运行闪亮的应用程序。如果您还没有,我建议您同时阅读 mcve 和 reproducible examples。
标签: r input shiny reactive-programming