将Shiny的输出保存到文件

时间:2018-06-06 15:12:29

标签: r file shiny

我正在创建启动闪亮应用的功能。

这将允许用户进行多项选择。

根据我的理解,闪亮不会将数据返回给调用程序(请澄清一下)

因此,我保存到一个文本文件,最终将由程序读取,然后删除文本文件。

当我在闪亮的

中添加file.append(colorfile,output$col)时问题就开始了

当我启动闪亮的应用时,我收到错误,(问题的结尾是代码,这里是entire R script

> CherryPickPalette("BiryaniRice","Kulfi","Haveli2")

Listening on http://127.0.0.1:7208
Warning: Error in $.shinyoutput: Reading objects from shinyoutput object not allowed.
  54: stop
  53: $.shinyoutput
  50: server [c:\RanglaPunjab/R/RanglaPunjab.R#230]
Error in `$.shinyoutput`(output, col) : 
  Reading objects from shinyoutput object not allowed.

功能CherryPicker调色板

CherryPickPalette <- function (name, name2=NULL, name3=NULL){

  if ((nargs() < 2) || (nargs() > 3)){
    stop("Enter 2 or 3 valid palettes. Run ListPalette() for list of palettes.")
  }
  if (nargs() == 2){
    new_pal <- MergePalette(name,name2)
  }
  else if (nargs() == 3){
    new_pal <- MergePalette(name,name2,name3)
  }

  if (interactive()){
    colorfile <- paste(getwd(),"colorfile.txt",sep="/")
    if (!file.exists(colorfile)){
      file.create(colorfile)
    }
    shinyApp(
      ui = fluidPage(
        titlePanel("Cherry Pick Your Own Palette!"),
        sidebarPanel (hr(),
                      selectInput('col', 'Options', new_pal, multiple=TRUE, selectize=FALSE, size = 15)
                      ),
        mainPanel(
          h5('Your custom colors',style = "font-weight: bold;"),
          fluidRow(column(12,verbatimTextOutput("col"))))
      ),
      server = function(input,output,session){
        output$col <- renderPrint(input$col)
        file.append(colorfile,output$col)
      }

    )
  }

}

1 个答案:

答案 0 :(得分:1)

file.append函数会将一个文件附加到另一个文件。 (不要将文本添加到文件中),看看cat或sink函数

以下似乎对我有用

  server = function(input,output,session){
   outuputdata<-  reactive({
      input$col
    })

    output$col <- { 
      renderPrint(outuputdata())
    }
    observe({
      message <- paste(outuputdata(),"\n")
      cat(message,file=colorfile, append=TRUE)
      })
   }