sách gpt4 ai đã đi

r - 如何将 'learnr' 中的教程问题嵌入到完整的 Shiny 应用程序中?

In lại 作者:行者123 更新时间:2023-12-02 17:50:35 26 4
mua khóa gpt4 Nike

我正在尝试将 learnr 包中的教程 Rmd 嵌入到一个完整的 Shiny 应用程序中。但是,学习者使用 shiny_prerendered 运行时,我无法在我的应用程序中调用它。如何在我的 Shiny 应用程序中运行交互式教程?

我现在有三个文件:ui.R、server.R 和tutorial.Rmd。

我的教程如下所示(为了格式化而删除了一个`)

---
title: "my tutorial"
tutorial:
id: "com.example.tutorials.a-tutorial"
version: 1.0
output: learnr::tutorial
runtime: shiny_prerendered
---

``{r setup, include=FALSE}
library(learnr)
knitr::opts_chunk$set(echo = FALSE)
``

### Exercise Example
An R code question
``{r add-function, exercise=TRUE, exercise.lines = 5}
add <- function() {

}
``

### Quiz
R Quiz Question
``{r quiz}
quiz(
question("Question 1",
answer("wrong"),
answer("also wrong"),
answer("right", correct = TRUE),
answer("wrong again")
)
)
``

当我尝试从 ui.R 渲染此文件的输出时,如下所示:

ui <- tagList(
fluidPage(theme = shinytheme("cosmo")),
navbarPage(
"appTitle",
tabPanel("Embedding Tutorials?",
includeMarkdown("tutorial.Rmd")
),
)
)

它(我认为正确)将其显示为常规的旧 Rmd 文件,而不是交互式教程。

我还尝试使用 rmarkdown::render("tutorial.Rmd") 它只是将文件路径渲染到 Rmd 生成的 html 文件 (/Users/me/app/tutorial.html).

当我尝试使用 run_tutorial("hello", package="learnr") 呈现任何教程时,它(再次正确地)给出了错误错误:无法从runApp()内部调用runApp()。如果您的应用程序代码包含runApp(),请将其删除。

我已经发现我可以使用 learnr TRONG question() 函数创建问题 block ,方法如下:

ui <- tagList(
fluidPage(theme = shinytheme("cosmo")),
navbarPage(
"appTitle",
tabPanel("Tutorial",
quiz(
question("Quiz question",
answer("1"),
answer("2"),
answer("3", correct = TRUE),
answer("4"),
allow_retry = TRUE
)
),
)
)

但这不允许创建可在应用程序内运行的 R 代码块的功能。

我想要的是一个完全交互式的学习者教程,可以从 ui.R 文件中呈现一个 Shiny 的应用程序。这可能吗?

1 Câu trả lời

以及我将您的额外 Material 纳入 learnr 的建议教程我也得到了嵌入工作。创建 app.R包含以下内容:

#
# This is a Shiny web application. You can run the application by clicking
# the 'Run App' button above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#

library(shiny)

# Define UI for application that draws a histogram
ui <- fluidPage(

# Application title
titlePanel("learnr tutorial"),

# Show a plot of the generated distribution
mainPanel(fluidRow(
htmlOutput("frame")
))
)

# Define server logic required to draw a histogram
server <- function(input, output) {

output$frame <- renderUI({
tags$iframe(
src="https://jjallaire.shinyapps.io/learnr-tutorial-03a-data-manip-filter/", width=1280, height=720
)
})
}

# Run the application
shinyApp(ui = ui, server = server)

现在当你 Run App这应该嵌入 https://rstudio.github.io/learnr/ 中的示例教程

该教程似乎有必要渲染并发布到shinyapps.io等:我无法仅从渲染的html中让它工作。文件。所以,

  1. 创建教程
  2. 发布教程
  3. 嵌入教程

似乎是前进的方向。

关于r - 如何将 'learnr' 中的教程问题嵌入到完整的 Shiny 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55596637/

26 4 0
Bài viết được đề xuất: 用于远程IP(主机)的Java RMI
Bài viết được đề xuất: javascript - 设置 Backbone 模型的属性
Bài viết được đề xuất: javascript - 刷新页面后DIV显示 block 状态
Bài viết được đề xuất: java.nio.file.Paths - 如何在迭代时跳过无法访问的文件/文件夹
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com