闪亮:为反应变量预先分配一个值
Shiny: pre-assign a value to a reactive varible
我有一个闪亮的应用程序,用于对 10 行 iris
数据进行采样。
当我第一次启动这个闪亮的应用程序时,我需要单击 sampling
操作按钮以显示采样的 iris
行。
是否可以预先分配一个值,让 shiny 在我第一次打开应用程序时显示采样的 iris
数据?
下面是原代码
library(shiny)
ui = fluidPage(
actionButton(inputId = "sampling", label = "Sample rows"),
tableOutput("DFTable")
)
server = function(input, output, session){
n <- eventReactive(input$sampling, {
getrows <- dim(iris)[1]
return(sample(1:getrows, 10))
})
output$DFTable <- renderTable(iris[n(), ])
}
shinyApp(ui, server)
我试了两种方法,都不行。
- 为
n
初始化默认值
n <- reactiveVal(value = 1:10)
- 使用
if()
函数
output$DFTable <- renderTable(
if(is.null(n())){n() = 1:10}
iris[n(), ]
)
非常感谢您的帮助。
下面的方法对你有用吗?
library(shiny)
ui = fluidPage(
actionButton(inputId = "sampling", label = "Sample rows"),
tableOutput("DFTable")
)
server = function(input, output, session){
values <- reactiveValues()
values$n <- sample(1:nrow(iris), 10)
observeEvent(input$sampling, {
values$n <- sample(1:nrow(iris), 10)
})
output$DFTable <- renderTable(iris[values$n, ])
}
shinyApp(ui, server)
我有一个闪亮的应用程序,用于对 10 行 iris
数据进行采样。
当我第一次启动这个闪亮的应用程序时,我需要单击 sampling
操作按钮以显示采样的 iris
行。
是否可以预先分配一个值,让 shiny 在我第一次打开应用程序时显示采样的 iris
数据?
下面是原代码
library(shiny)
ui = fluidPage(
actionButton(inputId = "sampling", label = "Sample rows"),
tableOutput("DFTable")
)
server = function(input, output, session){
n <- eventReactive(input$sampling, {
getrows <- dim(iris)[1]
return(sample(1:getrows, 10))
})
output$DFTable <- renderTable(iris[n(), ])
}
shinyApp(ui, server)
我试了两种方法,都不行。
- 为
n
初始化默认值
n <- reactiveVal(value = 1:10)
- 使用
if()
函数
output$DFTable <- renderTable(
if(is.null(n())){n() = 1:10}
iris[n(), ]
)
非常感谢您的帮助。
下面的方法对你有用吗?
library(shiny)
ui = fluidPage(
actionButton(inputId = "sampling", label = "Sample rows"),
tableOutput("DFTable")
)
server = function(input, output, session){
values <- reactiveValues()
values$n <- sample(1:nrow(iris), 10)
observeEvent(input$sampling, {
values$n <- sample(1:nrow(iris), 10)
})
output$DFTable <- renderTable(iris[values$n, ])
}
shinyApp(ui, server)