R闪亮,根据输入加载数据

Yok*_*oki 6 r shiny

我在服务器端有每天的数据,想根据日期输入加载数据

在服务器端,我有这个:

 dateInput("date","Enter a date:",value = "2014-01-13"))
Run Code Online (Sandbox Code Playgroud)

在用户界面方面,

library(shiny)
library(googleVis)
library(rpart.plot)

load("data_2014_01_13_new.RData")  #seg and fit are data in this file
shinyServer(function(input, output) {
    output$values <- renderGvis({
      gvisTable(seg[seg$rate >= input$test[1] & seg$rate <= input$test[2],])
    })
    output$plot <- renderPlot({
     prp(fit,extra=T)
    })
})
Run Code Online (Sandbox Code Playgroud)

我想将负载加载到服务器功能中,并且可以随着日期的变化加载不同的数据。谢谢!

Jef*_*len 7

阅读教程中的这些页面:

您可以将函数load内部的调用放在shinyServer另一个函数中,reactive以便您可以动态引用数据集,并且每个会话可以同时加载不同的数据。

因此,将这样的函数添加到您的shinyServer函数中(请注意,您可能需要修改日期输入字符串的格式以使其与您的文件命名方式兼容)。

dataset <- reactive({
  filename <- paste0("data_", input$date, ".Rdata")
  load(filename)
})
Run Code Online (Sandbox Code Playgroud)

那么您可以dataset()在其他地方引用server.R以获取该用户数据集的适当值。

  • 这实际上不起作用,因为 `load` 返回加载对象的 *name*,而不是对象本身(从而导致 Yoki 的错误)。你可以把它改成`get(load(filename))` (7认同)