这个问题我想了很久,好像也想不通!我构建的是一个 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})
有人可以帮忙吗?