reactValues(RShiny)内的反应环境

朱利安·伯格(Julian Burger)

我正在尝试使用我想使用observeEvent表达式更新的具有反应性尺寸的矩阵。我的想法如下:

首先,我将创建一个尺寸为input $ length(-> react)且输入为0的矩阵的reactValues对象。然后,我将observeEvent与actionButton一起使用以触发矩阵中的更新。这需要用反应性值(value())更新矩阵中由反应性索引向量(ind())表示的特定单元格。

我了解问题所在:在mat = ...中,我无法使用其他反应式表达式,但是我没有替代解决方案,非常感谢您对此提供任何输入。

提前致谢!

亲切的问候,

朱利安


ui <- fluidPage(
  numericInput("length", "Dimensions of the matrix", value = 5),
  numericInput("a", "value for a", value = 2),
  numericInput("b", "value for b", value = 2),
  numericInput("ind1", "value for index vector 1", value = 1),
  numericInput("ind2", "value for index vector 2", value = 1),
  actionButton("go", "Update"),
  tableOutput("matrix")
)


server <- function(input, output) {

  ### Calculate the value that will be used for the update
  value <- reactive(
    mean(rbeta(100, input$a, input$b))
  )

  ### Create a reactive index vector used to determine the position of the cell in the matrix
  ind <- reactive(
    c(input$ind1, input$ind2)
  )

  ### Create reactiveValues matrix with dimensions specified in length
  beta.matrix <-  reactiveValues(
    mat = matrix(0, input$length, input$length)
  )

  ### Update matrix at positon ind with new value
  observeEvent(input$go, {
    beta.matrix$mat[ind()[1], ind()[2]] <- value() 
  }
  )

  ### Render matrix
  output$matrix <- renderTable({
    mat <- beta.matrix$mat
    mat
  })

}

# Run the application 
shinyApp(ui = ui, server = server)
伊斯米尔谢尔夫

我认为您将需要两个反应性“阶段”。

  1. 尺寸更改时初始化一个空矩阵
  2. 对矩阵内容的变化做出反应

请检查以下内容:

library(shiny)

ui <- fluidPage(
  numericInput("length", "Dimensions of the matrix", value = 5),
  numericInput("a", "value for a", value = 2),
  numericInput("b", "value for b", value = 2),
  numericInput("ind1", "value for index vector 1", value = 1),
  numericInput("ind2", "value for index vector 2", value = 1),
  actionButton("go", "Update"),
  tableOutput("matrix")
)

server <- function(input, output) {
  ### Calculate the value that will be used for the update
  value <- reactive(mean(rbeta(100, input$a, input$b)))

  ### Create a reactive index vector used to determine the position of the cell in the matrix
  ind <- reactive(c(input$ind1, input$ind2))

  beta.matrix <- reactiveValues(mat = NULL)
  beta.matrix.ini <- reactive({
    mat = matrix(0, input$length, input$length)
  })

  observe({
    beta.matrix$mat <- beta.matrix.ini()
  })

  ### Update matrix at positon ind with new value
  observeEvent(input$go, {
    beta.matrix$mat[ind()[1], ind()[2]] <- value()
  })

  ### Render matrix
  output$matrix <- renderTable({
    mat <- beta.matrix$mat
    mat
  })

}

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

反应:使用环境变量

来自分类Dev

RShiny中的无功输入反应太快(不使用按钮)

来自分类Dev

在 RShiny 中的反应性事件中观察事件刷

来自分类Dev

如何在 Rshiny 中导入反应性数据集?

来自分类Dev

反应-类内的useContext

来自分类Dev

反应本机Expo环境变量

来自分类Dev

生产环境中的反应和 redux 错误

来自分类Dev

反应 访问对象内的字段

来自分类Dev

反应容器内的本机容器

来自分类Dev

反应组件内的测试方法

来自分类Dev

如何重置reactValues?

来自分类Dev

闪亮:在reactValues()上观察()

来自分类Dev

反应不从更新的环境文件中获取数据

来自分类Dev

反应访问语言环境的最简单方法是什么

来自分类Dev

R闪亮的服务器问题 - 反应性全球环境

来自分类Dev

在反应组件内等待来自非反应源的请求

来自分类Dev

反应不更新数组内对象的属性

来自分类Dev

反应本机和应用内购买?

来自分类Dev

反应:无法获取setInterval内的状态

来自分类Dev

反应componentDidUpdate错误内的本机调用setState

来自分类Dev

在li标签内反应多个标签

来自分类Dev

在元素内反应变化值

来自分类Dev

反应测试-在元素内获取文本

来自分类Dev

反应中 ap 标签内的链接

来自分类Dev

在反应中的功能组件内编写函数

来自分类Dev

在嵌套组件内反应组件道具

来自分类Dev

反应打印运动属性内的值

来自分类Dev

闪亮:如何更新reactValues对象?

来自分类Dev

用于 PHP 环境的 docker 内的 FTP 访问