【发布时间】:2021-09-02 01:30:27
【问题描述】:
在下面的 MWE 代码中,我试图将反应值“周期”(从滑块输入生成并在服务器部分中定义)插入出现的用户输入矩阵的第一行和第一列在 UI 部分。正如您在下面看到的,矩阵的第一行/列的当前设置为“1”。我希望它与“句点”中的值相同,并且随着用户移动顶部滑块所影响的句点变化而发生反应。
我确定这需要对 Reactivity/observeEvent 有一定的了解,而我还没有。我用这些参数愚弄了无济于事。
另请参阅下面的图片以更好地解释。
library(shiny)
library(shinyMatrix)
ui <- fluidPage(style = "margin-top:10px;",
column(3,
fluidRow(
sliderInput("periods", "Nbr of periods (X):",min = 1, max = 120, value = 60)),
fluidRow(
matrixInput(
"vector_input",
label = "Generate matrix:",
value = matrix(c(1, # << this 1 value needs to be reactive input$periods value
0.2),
1, 2, dimnames = list(NULL, c("Y", "Z"))),
rows = list(extend = TRUE, names = FALSE),
cols = list(extend = FALSE, names = TRUE, editableNames = FALSE),
class = "numeric"),
textOutput("selected_var")
)),
column(9,))
server <- function(input, output) {
output$selected_var <- renderText({paste("Number of periods: ", input$periods)})
vals <- reactiveValues()
observe({vals$periods <- input$periods})
vector_input <- reactive(input$vector_input)
} # close server
shinyApp(ui = ui, server = server)
这是运行草拟的代码时出现的内容,也是我想要做的事情。在第二张图片中,我展示了用户将输入的周期从 60 更改为 20,以及我希望矩阵 Y 列中的第一行如何反映这种变化:
【问题讨论】:
标签: r shiny shiny-reactivity