gpt4 book ai didi

r - 使用 ShinyFiles 加载数据文件

转载 作者:行者123 更新时间:2023-12-02 17:28:28 25 4
gpt4 key购买 nike

我的 Shiny 应用程序应该加载几个数据文件。为此,我尝试使用 ShinyFiles package .来自 ui.R:

shinyFilesButton('文件', '加载数据集', '请选择一个数据集', FALSE)

但是,我不确定在 server.R 中放入什么来加载文件。我知道如何获取文件路径和所有内容,但是我应该将 load() 命令放在哪里?

这是我现在尝试的:(来自 server.R):

observeEvent(input$file, {
inFile <- parseFilePaths(roots=roots, input$file)
load(as.character(inFile$datapath), envir=.GlobalEnv)
})

这些文件是由 save.image() 保存的数据文件,包含一些数据框、矩阵和由另一个 R 脚本生成的列表。在我的 Shiny 应用中,我想主要将数据用于图形,因此我需要在应用运行时加载它们。

最佳答案

很难理解“Shiny seems to not use the contents”是什么意思

参见示例(——我的数据中有对象“y”。)

界面

shinyUI(

fluidPage(
shinyFilesButton('file', 'Load Dataset', 'Please select a dataset', FALSE),
textOutput("txt")

)
)

服务器

shinyServer(function(input, output,session) {
shinyFileChoose(input,'file', session=session,roots=c(wd='.'))

observeEvent(input$file, {
inFile <- parseFilePaths(roots=c(wd='.'), input$file)
load(as.character(inFile$datapath), envir=.GlobalEnv)
})

output$txt=renderPrint({
input$file
if(exists("y")) y})

})

根据数据更改文本。

为简单起见,您可以使用 reactiveValues 之类的

shinyServer(function(input, output,session) {
shinyFileChoose(input,'file', session=session,roots=c(wd='.'))
envv=reactiveValues(y=NULL)
observeEvent(input$file, {
inFile <- parseFilePaths(roots=c(wd='.'), input$file)
load(as.character(inFile$datapath))
envv$y=y
})

output$txt=renderPrint({envv$y})

})

这两种变体都有效,但如果您在 session 中需要不同的数据,则其次更好。

关于r - 使用 ShinyFiles 加载数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36619989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com