我目前正在开发一个 R Shiny 应用程序,该应用程序利用 googlesheets4 在应用程序启动时从 GoogleSheets 中提取一个大型数据集。将此数据集加载到我的应用程序需要大约 2 分钟,这会拖延我整个应用程序的加载时间。
我的应用程序中唯一的视觉对象是基于这个 GoogleSheets 数据,所以它非常依赖这个特定的数据集。一旦数据集被拉入我的应用程序,它就会被过滤,因此变得更小(85,000 行 ---> 1,000 行)。这个 GoogleSheet 数据每天都会更新,所以我没有机会预先下载一次并将其永久存储为 .csv。
我已经尝试过两种不同的修复方法,但都没有成功……好奇是否有人有任何想法。
- 运行一个单独的应用程序。我的第一个想法是完全创建一个单独的 Shiny 应用程序,其唯一目的是每天拉一次 GoogleSheets df。一旦它拉出它,它将进行必要的数据清理以将其降至约 1,000 行,然后将较小的 df 推送到不同的 GoogleSheet 链接。然后,我的带有视觉效果的原始应用程序将始终引用新的 GoogleSheet(加载时间会少得多)。
我在这里遇到的问题是我不知道如何使用 googlesheets4 编写新的 GoogleSheets 文档。如果有人知道如何做到这一点,将不胜感激。
- 暂时延迟 GoogleSheets 数据的加载,并让视觉首先填充。我的第二个想法是在启动时延迟拉入 GoogleSheets df 的代码,让我的视觉首先填充(使用旧数据),然后让 GoogleSheets 拉动发生。拉取完成后,让视觉对象重新填充更新的数据。
我想不出最好/正确的方法来实现这一点。我试着弄乱 sleep.sys() 和 futures/promises 但无法让事情正常工作。
好奇是否有人对我的两种不同方法有任何想法,或者是否有更好的方法我只是没有考虑......
谢谢!