2016-04-14 7 views
2

Parlak uygulamamın yüklenmesi gereken birkaç veri dosyanız var. Bunu başarmak için ShinyFiles package kullanmayı deneyin. ui.R Gönderen: AncakVeri dosyalarını ShinyFiles ile yükleme

shinyFilesButton('file', 'Load Dataset', 'Please select a dataset', FALSE)

, dosyayı yüklemek için server.R koymak gerektiğinden emin değilim. Dosya yolunu ve hepsini nasıl alacağımı biliyorum ama load() komutunu nereye koyayım? (server.R itibaren):

Bu Şimdi denemek budur save.image() tarafından kaydedilen ve başka R komut dosyası tarafından üretilen bazı veri çerçeveleri, matrisler ve listeler içerdiğinden

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

dosyaları veri dosyalarıdır. Parlak uygulamasında, verileri çoğunlukla grafikler için kullanmak istiyorum, bu yüzden uygulama çalışırken yüklenmeleri gerekiyor.

+0

'Envir''e farklı bir şey iletmem gerekiyor mu? 'Envir = .GlobalEnv' kullanarak dosyayı yükler, ancak uygulamadan çıkıp yeniden başlatana kadar Shiny içeriği kullanmaz gibi görünüyor. –

+0

, test etmek için yeniden üretilebilir bir şey gösteriyor. Dosyalarında ne olduğunu bilmediğin zaman cevap vermek zor. ve nasıl yükleyeceksin – Batanichek

cevap

2

Bu örneğe bakın

"Parlak içeriğini kullanmamayı görünüyor" demek olduğunu anlamak zor (-. Ben verilerinde nesne "y" var)

UI

shinyUI(

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

) 
) 

Sunucu

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}) 

    }) 

Metin verilerinden değişti. Her iki çalışmayı varyantları ama oturumlarda farklı veriler gerekirse ikinci iyi 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}) 

    }) 

gibi

simplisity için kullanabilirsiniz.

+0

Teşekkür ederim, bu işe yarıyor. –

+0

İstemci bilgisayardan bir dosya seçmek istediğimde, sadece sunucu dosyalarına erişebiliyorum? !! İstemci bilgisayardan dosya/klasörleri nasıl seçebilirim? – Mohammad

+0

@mohammad İstemci bilgisayardan dosya istiyorsanız, https://shiny.rstudio.com/reference/shiny/latest/fileInput.html – Batanichek