【问题标题】:Save Shiny output to Googlesheets将闪亮的输出保存到 Googlesheets
【发布时间】:2017-10-20 02:29:23
【问题描述】:

我有一个闪亮的应用程序,它可以产生我想保存到 Googlesheet 的输出。该应用程序根据用户输入生成值,并且我创建了一个工作模型(尽可能缩写)来复制错误,如下面的代码 sn-p 框中所示。

我还为示例 Googlesheet 创建了一个单独的 Google 帐户

登录 Google 帐户:

用户名:public.thurston@gmail.com
密码:notapassword123
谷歌表格:https://docs.google.com/spreadsheets/d/1y7dFTqUX3pLJ_VA-jjaWzMQydOVpwz8brPDMGpDCavk/edit#gid=0

library(shiny)
library(googlesheets)

#Code to download a new API token commented here:
#token = gs_auth(new_user = TRUE)
#saveRDS(token, "googlesheets_token.rds")

#Login to the following Google account:
#Username: public.thurston@gmail.com
#Password: notapassword123
#GoogleSheet: https://docs.google.com/spreadsheets/d/1y7dFTqUX3pLJ_VA-jjaWzMQydOVpwz8brPDMGpDCavk/edit#gid=0

ui <- shinyUI(navbarPage("Example",
  tabPanel("Example",
    sidebarLayout(
      sidebarPanel(
       numericInput("number", label = "I am the number input", value = 10),
       actionButton("saveresult", label = "Refresh & Save Result")        
      ), 
      mainPanel(
        h2(strong("Input value:")),
        h4(textOutput("text_number"))
      )
    )
  )
)
)

server <- shinyServer(function(input, output) {
  values <- reactiveValues()
  observe({
    input$saveresult
    values$number <- input$number
  })
  output$text_number <- renderText({
    input$saveresult
    paste("Number:", isolate(input$number))
  })
  observeEvent(input$saveresult, {
    gs_auth(token = "googlesheets_token.rds")
    gs_add_row(ss = gs_key("1y7dFTqUX3pLJ_VA-jjaWzMQydOVpwz8brPDMGpDCavk"), 
               ws = "Sheet1",
               input = output$text_number
    )
  })
})

shinyApp(ui = ui, server = server)

当我尝试将输出保存到 Googlesheet 时,出现以下错误。

Warning: Error in $.shinyoutput: Reading objects from shinyoutput object not allowed.
Stack trace (innermost first):
    72: $.shinyoutput
    71: $
    70: nrow
    69: gs_add_row
    68: observeEventHandler [#13]
     4: <Anonymous>
     3: do.call
     2: print.shiny.appobj
     1: <Promise>
ERROR: [on_request_read] connection reset by peer

【问题讨论】:

    标签: r shiny shinydashboard r-googlesheets


    【解决方案1】:

    您无法读取输出值output$text_number,因此您可以使用input = values$numberinput = input$number 而不是input = output$text_number

    【讨论】:

      猜你喜欢
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多