2017-07-03 5 views
0

Ich arbeite mit glänzend auf einem Server. Ich möchte eine Tabelle aus einer URL lesen und dann in das Verzeichnis als CSV-Datei schreiben und es aus dem Verzeichnis lesen. Ich kann es meinem Verzeichnis nicht schreiben ... hier ist der vereinfachte Code:R glänzend, schreiben Datentabelle

UI:

library(shiny) 
library(XML) 
library(shinydashboard) 





dashboardPage(
    dashboardHeader(title = "BLA BLA BLA"), 
    dashboardSidebar(), 
    dashboardBody(
DT::dataTableOutput("datatable") 
) 

     ) 

Server:

library(shiny) 
library(shinydashboard) 
library(XML) 

function(input, output){ 
geodatasetInput <- observe({ 
url <- "http://www.fipiran.com/Fund/MFComparing/1" 
url2 <- "http://www.fipiran.com/Market/LupBourse" 
classes <- c("character", "FormattedNumber", "Percent", "FormattedNumber","Percent", "integer","FormattedNumber", "FormattedNumber", "FormattedNumber", "numeric","FormattedNumber", "numeric" ,"numeric", "numeric", "numeric", "numeric") 
ss <- readHTMLTable(url2, which = 1, colClasses = classes, stringsAsFactors = FALSE) 
write.csv(ss, "ss.csv") 
}) 



output$datatable <- DT::renderDataTable({ 
url <- "http://www.fipiran.com/Fund/MFComparing/1" 
url2 <- "http://www.fipiran.com/Market/LupBourse" 

classes <- c("character", "FormattedNumber", "Percent", "FormattedNumber","Percent", "integer","FormattedNumber", "FormattedNumber", "FormattedNumber", "numeric","FormattedNumber", "numeric" ,"numeric", "numeric", "numeric", "numeric") 
ss <- readHTMLTable(url2, which = 1, colClasses = classes, stringsAsFactors = FALSE) 

DT::datatable(ss, options = list(lengthMenu = list(c(5, 15, -1), c('5', '15', 'All')), 
     pageLength = 5, 
     list(scrollX = TRUE), 
           autoWidth = TRUE, 
    columnDefs = list(list(width = '100px', targets = "_all")) 
           )) 



}) 


} 
+0

Was meinst du du nicht schreiben kann? Erhalten Sie einen Permission-Fehler? Stürzt die App ab? –

+0

Ich bin mir nicht sicher, ob mein Code falsch ist oder was ihn zum Absturz bringt! aber Tatsache ist, dass es nicht läuft! gibt es irgendein Problem mit dem Code? –

+0

Meine Vermutung ist, dass der "glänzende" Benutzer keine Schreibberechtigungen für den Ordner hat, in dem sich die App befindet. Funktioniert alles gut, wenn Sie es ohne shiny-server ausführen? –

Antwort

0

ich den Code ein wenig umstrukturiert, so dass die Die Website wird nur einmal analysiert. Der andere Code hat aber auch für mich funktioniert. Vielleicht hast du eine Datei ss.csv, die bereits geöffnet ist?

Silke

data <- reactiveValues() 

     observe({ 
     url <- "http://www.fipiran.com/Fund/MFComparing/1" 
     url2 <- "http://www.fipiran.com/Market/LupBourse" 
     classes <- c("character", "FormattedNumber", "Percent", "FormattedNumber","Percent", "integer","FormattedNumber", "FormattedNumber", "FormattedNumber", "numeric","FormattedNumber", "numeric" ,"numeric", "numeric", "numeric", "numeric") 
     data$ss <- readHTMLTable(url2, which = 1, colClasses = classes, stringsAsFactors = FALSE) 
write.csv(data$ss,"ss.csv") 

     }) 



     output$datatable <- DT::renderDataTable({ 

     DT::datatable(data$ss, options = list(lengthMenu = list(c(5, 15, -1), c('5', '15', 'All')), 
             pageLength = 5, 
             list(scrollX = TRUE), 
             autoWidth = TRUE, 
             columnDefs = list(list(width = '100px', targets = "_all")) 
     )) 



     }) 
+0

Ich arbeite an einem Remote-Server, und ich weiß nicht, was mit dem Code falsch ist! jedoch läuft es ordnungsgemäß auf einem lokalen System und schreibt die CSV-Datei in das Verzeichnis! –

+0

das Problem ist mit Erlaubnis –