闪亮:导入RData时出错

时间:2017-08-08 12:57:44

标签: r shiny shiny-server rdata

在我工作的项目中,我需要导入一个RData文件。 该文件包含多个data.frame和一个列表。但是我无法显示data.frame。 请问有人有想法吗?

事实上,我需要拥有与之前会话相同的数据,这就是我导入RData文件的原因。

以下是我想要做的一个例子。

在global.R中:

## Package
library(shiny)

## Data Frame
data("iris")
data("mtcars")
data("Orange")

## Data
dfA <- iris
dfB <- mtcars
dfC <- Orange
init_ls <- list("a" = 1, "b" = LETTERS[c(5, 3)])

## Save
save(dfA, dfB, dfC, init_ls, file = "example.RData")

LoadToEnvironment <- function(file, env = new.env()) {
    load(file, env)
    return(env)
}

在UI.R中:

shinyUI(
    fluidPage(
        ##===================================.
        ## UPLOAD
        ##===================================.
        sidebarLayout(
            ##-------------------.
            ## Side Bar : IMPORTATION
            ##-------------------.
            sidebarPanel(
                width = 4,
                fileInput(
                    inputId = "init_file",
                    label = "Init File (RData)",
                    accept = c(
                        "application/RData",
                        ".RData"
                    )
                )
            ),
            ##-------------------.
            ## Main : View Importation
            ##-------------------.
            mainPanel(
                tabsetPanel(
                    id = "tabset_upload",
                    tabPanel(title = "dfA",
                             tableOutput("dfA")),
                    tabPanel(title = "dfB",
                             tableOutput("dfB")),
                    tabPanel(title = "dfC",
                             tableOutput("dfC"))
                ) 
            )
            ##-------------------.
            ## end sideBar
            ##-------------------.
        )
    )
)

在Server.R中:

我尝试了两种方法来导入.RData(ImportInit_1 et ImportInit_2)

shinyServer(function(input, output, session){
    ##==============================================.
    ## Import
    ##==============================================.

    ImportInit_1 <- reactive({
        ## path
        path <- input$init_file
        if(is.null(path)){
            return(NULL)
        }else{
            env <- new.env()
            load(path, envir = env)
            return(env)
        }
    })

    ImportInit_2 <- reactive({
        ## path
        path <- input$init_file
        if(is.null(path)){
            return(NULL)
        }else{
            env <- reactiveFileReader(1000, session, path, LoadToEnvironment)
            return(env)
        }
    })

    ##==============================================.
    ## OUTPUT DATA
    ##==============================================.
    ## Output dfTransit using "importTransit()"

    output$dfA <- renderTable(ImportInit_1()[["dfA"]])

    output$dfB <- renderTable(ImportInit_2()[["dfB"]])

    output$dfC <- renderTable(ImportInit_1()[["dfC"]])

})

错误是: ImportInit_1() - &gt; &#34;糟糕的文件&#39;参数&#34; ImportInit_2() - &gt; &#34;文件名参数无效。

==&GT;我不明白为什么没有显示数据,知道我已找到解决方案。

提前感谢任何可以帮助我的人。

CED

0 个答案:

没有答案