0

这个问题我想了很久,好像也想不通!我构建的是一个 RShiny 应用程序,它使用库(googlesheets4)从 googlesheets 捕获REACTIVE(实时)数据并填充数据表。

什么有效

我可以通过从 1 个谷歌表中仅提供 1 个数据框来让我的应用程序工作。

 global <- reactiveValues(df = "")
    
    observe({
      if(! identical(global$df,DF())) #<- This refreshes the dataframe if different
        global$df = DF()
    })
    
    # Test Dataframe
    DF <-reactive({
      invalidateLater(60000,session=session)
      gs4_deauth()
      temp<-read_sheet("SHEETURLHERE", sheet = 'SHEETTITLE') #<- reads in 1 sheet 
      temp})

我正在努力实现的目标

从上面可以看出,我的整个应用程序只能阅读 1 张纸。我正在尝试读取 2 个或更多工作表,以便在将它们显示在数据表中之前执行一些转换。

我尝试过的(已编辑,下面的解决方案有效!)

全局 <- reactiveValues(df = "", df1 = "")

observe({
  if(! identical(global$df,DF()) | ! identical(global$df1, DF1()) 
    global$df = DF()
    global$df1 = DF1()
})

# Test Dataframe
DF <-reactive({
  invalidateLater(60000,session=session)
  gs4_deauth()
  temp<-read_sheet("SHEETURLHERE", sheet = 'SHEETTITLE') #<- reads in 1 sheet 
  temp})

DF1 <-reactive({
  invalidateLater(60000,session=session)
  gs4_deauth()
  temp<-read_sheet("SHEETURLHERE", sheet = 'SHEETTITLE') #<- reads in 1 sheet 
  temp})

有人可以帮忙吗?

4

0 回答 0