Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用“操作”按钮在R中设置小部件的值_R_Shiny - Fatal编程技术网

使用“操作”按钮在R中设置小部件的值

使用“操作”按钮在R中设置小部件的值,r,shiny,R,Shiny,基本上,我有一个基于日期时间的数据帧。有一些小部件根据设备运行情况控制绘图。选择日期时间后,绘图将自动更新,以显示设备在该点的运行情况。用户可以更改绘图以显示不同的设备排列。其想法是有一个操作按钮,根据用户选择的日期时间将小部件“重置”到当前选择的设备列表。下面是我的MRE library(shiny) library(tidyverse) test_data <- c(TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE) ui <

基本上,我有一个基于日期时间的数据帧。有一些小部件根据设备运行情况控制绘图。选择日期时间后,绘图将自动更新,以显示设备在该点的运行情况。用户可以更改绘图以显示不同的设备排列。其想法是有一个操作按钮,根据用户选择的日期时间将小部件“重置”到当前选择的设备列表。下面是我的MRE

library(shiny)
library(tidyverse)

test_data <- c(TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE)

ui <- fluidPage(
    titlePanel("Action Button Test"),
    sidebarLayout(
        sidebarPanel(
            numericInput("num", label = h3("Select Row:"), value = 4),
            actionButton("action", label = "Reset State")
        ),
        mainPanel(uiOutput('checkBox'))
    )
)

server <- function(input, output) {
    current_state <- reactive({
        test_data[input$num]
    })
    output$checkBox <- renderUI({
        checkboxInput("checkbox", label = "State", value = current_state())
    })
    observeEvent(input$action, {
        current_state <- test_data[input$num]
    })
}

shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(tidyverse)

测试数据让复选框依赖于
当前状态()
,我们可以通过第一个
observeEvent(当前状态(),{…
)实现。重置部分我们只需使用第二个
observeEvent(input$action)更新
input$num
,{…
并且由于复选框已经依赖于
当前状态()
它也将自动重置

library(shiny)
test_data <- c(TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE)
original_state <- 4

ui <- fluidPage(
    titlePanel("Action Button Test"),
    sidebarLayout(
        sidebarPanel(
            numericInput("num", label = h3("Select Row:"), value = original_state,max = length(test_data)),
            actionButton("action", label = "Reset State")
        ),
        mainPanel(
            checkboxInput("checkbox", label = "State", value = test_data[original_state])
        )
    )
)

server <- function(input, output, session) {
    
    current_state <- reactive({
        test_data[input$num]
    })

    observeEvent(current_state(),{
        updateCheckboxInput(session, "checkbox", value = current_state())
    })
    
    observeEvent(input$action, {
        updateNumericInput(session,'num', value = original_state)
    })
}

shinyApp(ui = ui, server = server)
库(闪亮)

observeEvent
中测试您需要的
updateCheckboxInput
数据。尝试
updateCheckboxInput(会话,“复选框”,值=4)
。用值替换所需值(即您的默认状态)。