2015-01-19 4 views
2

Есть ли способ перезагрузить входной файл, который был загружен с помощью fileInput? Я хотел бы разрешить пользователю обновлять его ввод путем простой модификации и перезагрузки файла csv. Кажется, что перезагрузка файла не обновляет его. Обходное решение, которое помогает сохранить измененные данные с различным именем файла.R shiny: перезагрузка данных с помощью fileInput

Я уже пробовал обмениваясь функцию FileInput с actionButton и file.choose(), но он не будет работать с R сервером

Вот мой тестовый код:

server.R

shinyServer(function(input, output, session) { 

getTestOutput <- reactive({ 
if(is.null(input$test)) 
    return(NULL) 

isolate({ 
writeLines(paste(input$test, collapse = "\n")) 
}) 
}) 

getTable <- reactive({ 
if(is.null(input$test)) 
    return(NULL) 

r <- read.csv((input$test)$datapath,sep=";",header = TRUE) 
as.data.frame(r) 
}) 

output$testOutput <- renderPrint({ 
    getTestOutput() 

}) 

output$testTable <- renderTable({ 
    if(is.null(getTable())) 
    return(NULL) 

    print(getTable()) 
}) 
}) 

ui.R

shinyUI(
fluidPage(

sidebarPanel(
    fileInput("test","Load a file") 
), 

mainPanel(
    verbatimTextOutput("testOutput"), 
    tableOutput('testTable') 
) 
) 
) 
+0

Это может помочь: http://stackoverflow.com/questions/30894780/cant-read-an-rdata-fileinput-with-shiny?answertab=active#tab-top – symbolrush

ответ

0

Если Блестящая приложение находится на отдельном сервере, то я считают, что это принципиально невозможно с помощью обычного веб-браузера; просто сохранить файл данных недостаточно, вам нужно выполнить новую загрузку после каждого изменения.

Однако, если приложение Shiny запущено на компьютере пользователя (то есть они сами запускают сеанс R и вызывают функцию, которая запускает Shiny), тогда вы можете просто спросить их о пути и использовать reactiveFileReader для автоматического обновления при каждом изменении файла.

+0

Блестящее приложение действительно находится на отдельном сервере, но нормально выполнять новую загрузку, и на самом деле это то, что я делал. Это проблема браузера. Кажется, что все работает отлично с Firefox, но с IE, Chrome и Opera, после нажатия «Загрузить файл» и выбора файла, ничего не происходит. Ввод $ test по-прежнему указывает на ту же старую копию файла. –

Смежные вопросы