我是新生的闪亮之作。
我有一个非常基本的问题,但我无法在stackoverflow上找到解决方案
我正在使用wleepang(https://github.com/wleepang/shiny-directory-input)创建的目录输入函数。
我写了一个函数read_files
, rbind 所选目录中的所有文件。
我可以使用 renderTable 显示此表,这非常有效。但我无法保存此表以便以后使用(检查缺少的数据,添加列,绘制ggplots ..)并下载 write.xlsx
ui <- fluidPage(
directoryInput('directory', label = 'select a directory'),
actionButton("upload", label="Hochladen"),
downloadButton("download", label="Runterladen")
)
server <- function(input, output, session) {
#this part is to set the directory
observeEvent(
ignoreNULL = TRUE,
eventExpr = {
input$directory
},
handlerExpr = {
if (input$directory > 0) {
path = choose.dir(default = readDirectoryInput(session, 'directory'))
updateDirectoryInput(session, 'directory', value = path)
}})
#now comes the actual code
observeEvent(input$upload,{
df <- read_files(readDirectoryInput(session, 'directory'))
})
我以后如何访问此df?
output$downloadData <- downloadHandler(
filename = function() {
paste('tabelle', '.csv', sep="") },
content = function(file) {
write.xlsx(df, file)
}
)
}
我的第二个问题如何将它作为xlsx文件下载到set目录中?
my global.r,read_files
函数
source('directoryInput.R')
read_files = function(inDir, pat="*.csv", readMe=read.csv2){
files = list.files(inDir, pattern=pat)
files = lapply(files, function(x) file.path(inDir, x))
df = do.call(rbind, lapply(files, readMe))
return(df)
}
答案 0 :(得分:0)
我使用反应函数保存了元素
upload_data <- eventReactive(input$upload, {
read_files(readDirectoryInput(session, 'directory')) })
并且可以通过upload_data()
访问它,这对我有用