有没有办法在 Shiny 的当前 运行 中使用最后一个 运行 的结果?
Is there a way to use the result of last run in the current run in Shiny?
我正在使用 Shiny 为用户构建动态仪表板。我使用 if 语句将我的代码分为两个主要部分。有一个名为 "New Line" 的输入,用户需要输入 "Yes" 或 "No" 作为此参数的值。如果用户选择 "Yes",代码的第一部分将是 运行,如果他选择 "No",则意味着第一部分是之前的 运行,只是第二部分代码必须是 运行。在第二部分中,有一些来自第一部分的参数。我想让 Shiny 保存从 ("New Line"==Yes) 计算的结果和参数,并将其用于下一个 运行s("New Line"==No) 直到用户更改答案再次 "New Line" 到 "Yes"。
我在 Shiny 中使用了 observeEvent 函数和一个动作按钮。但问题是 ("New Line"==Yes) 的结果不能用于接下来的 运行s.
shinyserver(function(input,output)){
observeEvent(input$click,{
if(input$'New Line' == 'Yes'){}
if(input$'New Line' == 'No'){}
})
}
我希望每当用户为 New Line
输入 No
并点击操作按钮时,代码可以使用 New Line
为 Yes
时计算的变量.但是现在每当我将 New Line
设置为 No
并点击操作按钮时,R 只是 运行 第二个 if。我可以复制并粘贴从第一行开始的所有行 if to tell R to 运行 all them again 但这些行大约需要 30 分钟,我不想重复它们。
您需要在某处序列化您的值。
一个例子:
shinyserver(function(input,output)){
observeEvent(input$click,{
if(input$'New Line' == 'Yes'){
data <- result_of_some_function()
some_other_things()
write.csv(data, "file.csv") # saving the data somewhere on disk
}
if(input$'New Line' == 'No'){
mypreviousdata = read.csv("file.csv")
something <- somefunction(mypreviousdata)
}
})
}
除了保存为 CSV,您可能更喜欢数据库或用户的 cookie,或其他任何东西。
我正在使用 Shiny 为用户构建动态仪表板。我使用 if 语句将我的代码分为两个主要部分。有一个名为 "New Line" 的输入,用户需要输入 "Yes" 或 "No" 作为此参数的值。如果用户选择 "Yes",代码的第一部分将是 运行,如果他选择 "No",则意味着第一部分是之前的 运行,只是第二部分代码必须是 运行。在第二部分中,有一些来自第一部分的参数。我想让 Shiny 保存从 ("New Line"==Yes) 计算的结果和参数,并将其用于下一个 运行s("New Line"==No) 直到用户更改答案再次 "New Line" 到 "Yes"。 我在 Shiny 中使用了 observeEvent 函数和一个动作按钮。但问题是 ("New Line"==Yes) 的结果不能用于接下来的 运行s.
shinyserver(function(input,output)){
observeEvent(input$click,{
if(input$'New Line' == 'Yes'){}
if(input$'New Line' == 'No'){}
})
}
我希望每当用户为 New Line
输入 No
并点击操作按钮时,代码可以使用 New Line
为 Yes
时计算的变量.但是现在每当我将 New Line
设置为 No
并点击操作按钮时,R 只是 运行 第二个 if。我可以复制并粘贴从第一行开始的所有行 if to tell R to 运行 all them again 但这些行大约需要 30 分钟,我不想重复它们。
您需要在某处序列化您的值。 一个例子:
shinyserver(function(input,output)){
observeEvent(input$click,{
if(input$'New Line' == 'Yes'){
data <- result_of_some_function()
some_other_things()
write.csv(data, "file.csv") # saving the data somewhere on disk
}
if(input$'New Line' == 'No'){
mypreviousdata = read.csv("file.csv")
something <- somefunction(mypreviousdata)
}
})
}
除了保存为 CSV,您可能更喜欢数据库或用户的 cookie,或其他任何东西。