在 bsplus 函数中集成 R 输出
Integrating R outputs in bsplus functions
我认为 bsplus
包在开发动态网站时很重要。我在 Rstudio 中使用 R Markdown。
但是,我发现将 bsplus
函数与 R 输出集成的方法特别棘手。
让我们看一个 bs_accordion
函数的例子,使用 mtcars
数据集
head <- head(mtcars)
tail <- tail(mtcars)
bs_accordion(id ="Data: mtcars") %>%
bs_append(title = "Head of mtcars", content = head) %>%
bs_append(title = "Tail of mtcars", content = tail)
我想在手风琴函数中显示 R 输出,显示数据帧 head
和 tail
。
现在,它只显示 head
中的第一个数字行。
是否可以在 bsplus
函数的 content
属性中包含 R 代码?
通过这种方式,我们可以动态显示 R 结果。
这应该适用于您的示例。您必须以某种方式创建一个数据table,仅包含它不会将其呈现为table。
注意:我把手风琴的id改成了Data-mtcars
。使用空格、“:”或“;”将禁用折叠。
library(shiny)
library(bsplus)
library(DT)
ui <- fluidPage(
bs_accordion(id ="Data-mtcars") %>%
bs_set_opts(panel_type = "primary", use_heading_link = T) %>%
bs_append(title = "Head of mtcars", content = DT::dataTableOutput("table1")) %>%
bs_set_opts(panel_type = "primary", use_heading_link = T) %>%
bs_append(title = "Tail of mtcars", content = DT::dataTableOutput("table2"))
)
server <- function(input, output) {
output$table1 <- DT::renderDataTable({
head
})
output$table2 <- DT::renderDataTable({
tail
})
}
shinyApp(ui, server)
我认为 bsplus
包在开发动态网站时很重要。我在 Rstudio 中使用 R Markdown。
但是,我发现将 bsplus
函数与 R 输出集成的方法特别棘手。
让我们看一个 bs_accordion
函数的例子,使用 mtcars
数据集
head <- head(mtcars)
tail <- tail(mtcars)
bs_accordion(id ="Data: mtcars") %>%
bs_append(title = "Head of mtcars", content = head) %>%
bs_append(title = "Tail of mtcars", content = tail)
我想在手风琴函数中显示 R 输出,显示数据帧 head
和 tail
。
现在,它只显示 head
中的第一个数字行。
是否可以在 bsplus
函数的 content
属性中包含 R 代码?
通过这种方式,我们可以动态显示 R 结果。
这应该适用于您的示例。您必须以某种方式创建一个数据table,仅包含它不会将其呈现为table。
注意:我把手风琴的id改成了Data-mtcars
。使用空格、“:”或“;”将禁用折叠。
library(shiny)
library(bsplus)
library(DT)
ui <- fluidPage(
bs_accordion(id ="Data-mtcars") %>%
bs_set_opts(panel_type = "primary", use_heading_link = T) %>%
bs_append(title = "Head of mtcars", content = DT::dataTableOutput("table1")) %>%
bs_set_opts(panel_type = "primary", use_heading_link = T) %>%
bs_append(title = "Tail of mtcars", content = DT::dataTableOutput("table2"))
)
server <- function(input, output) {
output$table1 <- DT::renderDataTable({
head
})
output$table2 <- DT::renderDataTable({
tail
})
}
shinyApp(ui, server)