2017-07-03 181 views
0

我正在服务器上闪亮。我想从URL读取表格,然后以CSV文件的形式写入目录并从目录中读取。我不能写我的目录......这里是简化代码:R闪亮,写数据表

UI:

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





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

     ) 

服务器:

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

你什么意思,你可以不写?你是否遇到过错误?应用程序崩溃了吗? –

+0

我不确定我的代码是否错误或是什么使它崩溃! 但事实是,它不运行! 有没有代码的问题? –

+0

我的猜测是'shiny'用户没有在应用程序所在的文件夹上写入权限。当你运行它没有闪亮的服务器时,一切工作正常吗? –

回答

0

我调整了代码一点点,从而使网站只解析一次。但是,其他代码也适用于我。也许,你有一个文件ss.csv,它已经打开了?

西尔克

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

我在远程服务器上工作,我不知道代码有什么问题!但是,它在本地系统上正常运行并将CSV文件写入目录! –

+0

问题是有权限的 –