Shiny 值[[3L]]中的错误(cond):对象';opcije';找不到

Shiny 值[[3L]]中的错误(cond):对象';opcije';找不到,shiny,shinyapps,Shiny,Shinyapps,下面的代码正以我希望的方式在脱机会话中工作 opcije <- ls()[sapply(ls(), function(x) class(get(x))) == 'data.frame'] ui <- fluidPage( selectInput("language", "Zadatak 3 - No-", choices = opcije), textOutput("tekstZadatka"),

下面的代码正以我希望的方式在脱机会话中工作

opcije <- ls()[sapply(ls(), function(x) class(get(x))) == 'data.frame']

ui <- fluidPage(
    selectInput("language", "Zadatak 3 - No-", choices =  opcije), 
    textOutput("tekstZadatka"),
    tableOutput("tabela")
)
server <- function(input, output, session) {
    
output$tekstZadatka <- renderText({'some text whatever'})

    output$tabela <- renderTable({
        dataset <<- get(input$language)
        dataset
    })  
}

shinyApp(ui, server)

opcije已解决。我缺少的部分是数据必须在服务器函数中加载,而不是在app.R中加载。现在,在部署之后,代码就可以正常工作了

server <- function(input, output, session) {
    
output$tekstZadatka <- renderText({'some text whatever'})

    for (n in 1:5){
        assign(paste("zadatak_", n, sep =''), read.csv(paste("Zadaci", paste("zadatak_", 
               n, ".csv", sep =''), sep ='/')))
    }
    
    output$tabela <- renderTable({
        dataset <- get(input$language)
        dataset
    })  
}

server全局变量需要在app.R文件中定义。添加了
opcije tryCatchList->tryCatchOne->Ausführung angehalten
进一步调试使我符合get内部的评估。日志显示get中有一个错误:第一个参数无效。您尝试引用的data.frame必须加载到App.R中。您的环境未在shinyapps.io中发布,只有app.R和加载到app.R中的文件以及位于app.R文件夹(或子文件夹)中的文件才会在app.R顶部发布,它们只是被删除。如果我把它们翻过来,同样的事情也会发生对于(1:5中的n){赋值(粘贴(“zadatak-”,n,sep=”),读取.csv(粘贴(“E:/1.RAST I PRIRAST/0.Nastava/Prezentacije/Vezbe\u Prezentacije/Test”),粘贴(“zadatak-”,n,.csv,.sep=”,sep=“/”)}它必须是带有opcije变量的,似乎命名列表的类型必须作为参数ls()[sapply(ls(),function(x)class(get(x)))给出=='data.frame']不返回列表,但返回char-vec