在闪亮的情况下,我希望使用相同的数据集来生成和显示图表和表格,并以csv格式下载表格中的数据。
我首先在服务器下加载一个像
这样的代码的数据表DTGlobal <- readRDS("bigfile")
我闪亮的selectInput()设置一些用户输入,如下所示
selectInput(inputId = "ScenarioName", label = "xxx", choices = scenarioNames)
目前,我在renderTable()
和renderPlot()
中使用
scenarioName <- input$availabilityScenarioName
DTlocal <- data.table::copy(DTGlobal[scenario %in% scenarioName)
add some further manipulations of DTlocal here
到目前为止,我已经通过基本上复制renderPlot()
和renderTable()
中的代码来完成图表和表格。我可以用downloadHandler()
做同样的事情。但我想知道是否有某种方法可以在服务器级别创建数据,然后我可以在下面的函数中访问。我想我可以在newDTGlobal <<- DTlocal
中使用renderPlot()
(首先称之为),但我认为这会让所有人都可以使用。如果他们运行相同的renderPlot()
,那将会消灭我的数据。
答案 0 :(得分:0)
弄清楚如何使用反应技术就可以了。这是我正在做的事情的代码片段。它从输入中获取变量值,并使用该信息生成数据表。
data.foodAvail <- reactive({
countryName <- input$availabilityCountryName
scenarioName <- input$availabilityScenarioName
dt <- data.table::copy(dt.foodAvail.foodGroup)
spiderData <- spiderGraphData(countryName, scenarioName, dt, displayColumnName = "food_group_code")
})
下一段代码显示了我如何使用它(两个代码块都在服务器中)。相关的一点是data.foodAvail()
。这是上面生成的值,该值特定于用户选择的输入值。
需要data.table副本,因为data.foodAvail()
被spiderGraphData函数中涉及:=
的数据表操作更改。
output$availabilitySpiderGraphP1 <- renderggiraph({
dt <- data.table::dt <- data.table::copy(data.foodAvail()))
scenarioName <- unique(dt$scenario)
dt[, region_code.IMPACT159 := NULL]
p <- spiderGraphOutput(dt, scenarioName)
ggiraph(code = print(p), zoom_max = 1, width = .5)
})