我正在使用该learnr
软件包创建一些练习题。所以,情况是这样的:我在 googlesheet 中有一个 csv 文件,我想用它reactiveFileReader
来持续导入。我的代码在带有这个 YAML 的 RMarkdown 中
---
title: "Tutorial"
output:
learnr::tutorial:
progressive: true
allow_skip: true
runtime: shiny_prerendered
---
问题:我如何reactiveFileReader
在这个 RMarkdown 中使用?
我试图将 分配reactiveFileReader
给一个对象,但出现此错误:
Error in .getReactiveEnvironment()$currentContext() :
Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)
帮助!
如果计划让学生在学习者练习中使用这些数据,那么尝试将其加载为反应式并不是一个好主意,因为他们无法将其用作常规数据框。
如果数据在谷歌表中,我建议googlesheets
每次加载教程时使用该包将其作为静态数据集导入。
首先,要获取您的应用程序可以在部署时远程使用的身份验证令牌,请使用应用程序目录作为您的工作目录运行此代码
library(googlesheets)
shiny_token <- gs_auth() # authenticate w/ your desired Google identity here
saveRDS(shiny_token, "shiny_app_token.rds") # save token to app dir
然后在学习者教程的代码中使用您的身份验证令牌和谷歌工作表的工作表键加载数据(在工作表的 URL 中找到它)
```{r setup, include=FALSE}
library(learnr)
library(googlesheets)
googlesheets::gs_auth(token = "shiny_app_token.rds")
sheet_key <- "your_sheet_key_here"
learnr_data <- googlesheets::gs_key(sheet_key) %>% gs_read_csv()
```
learnr_data
现在应该可以作为常规数据框提供给您的所有锻炼块。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句