【问题标题】:R shiny, write data tableR闪亮,写数据表
【发布时间】:2017-07-03 07:57:56
【问题描述】:

我正在服务器上使用闪亮。我想从 URL 读取表,然后将其作为 CSV 文件写入目录并从目录中读取。我无法将其写入我的目录...这是简化代码:

用户界面:

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



})


}

【问题讨论】:

  • 你不会写是什么意思?您是否收到许可错误?应用程序崩溃了吗?
  • 我不确定我的代码是否错误或导致它崩溃的原因!但事实是它没有运行!代码有问题吗?
  • 我的猜测是shiny用户对应用所在的文件夹没有写权限。在没有闪亮服务器的情况下运行它是否一切正常?
  • 你怎么能让shiny拥有写权限?我正在制作一个闪亮的应用程序作为 R 包的一部分,我希望能够在用户本地计算机上读取和写入 csvs。

标签: r shiny shinydashboard


【解决方案1】:

我稍微重构了代码,使网站只被解析一次。但是,其他代码也对我有用。所以也许,你有一个已经打开的文件 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"))
        ))



      })

【讨论】:

  • 我在远程服务器上工作,不知道代码有什么问题!但是,它在本地系统上正常运行,并将 CSV 文件写入目录!
  • 权限问题
猜你喜欢
  • 2014-05-13
  • 2018-12-02
  • 1970-01-01
  • 2021-06-21
  • 2014-09-18
  • 2017-11-15
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
相关资源
最近更新 更多