2015-01-19 3 views
2

fileInput으로로드 된 입력 파일을 다시로드하는 방법이 있습니까? 사용자가 csv 파일을 수정하고 다시로드하여 입력 내용을 업데이트 할 수있게하고 싶습니다. 파일을 다시로드해도 업데이트되지 않는 것 같습니다. 한 가지 해결 방법은 수정 된 데이터를 다른 파일 이름으로 저장하는 것입니다. 내가 actionButton 및 file.choose()와 fileinput 함수 기능을 교환 이미 해봤지만 R 서버에서 작동하지 않습니다R shiny : fileInput을 사용하여 데이터 다시로드

여기 내 테스트 코드입니다 :

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

반짝 이는 애플 리케이션은 실제로 별도의 서버에, 새로운 업로드를 수행하는 것이 좋으며, 실제로 그 일을하고 있습니다. 브라우저 문제 인 것 같습니다. IE, Chrome 및 Opera에서 '파일로드'를 클릭하고 수정 된 파일을 선택한 후에는 아무 일도 일어나지 않습니다. Input $ test는 여전히 파일의 이전 사본을 가리 킵니다. –

관련 문제