Shiny 使用rhandsontable但不使用dq_render_handsontable的被动数据表
我正在尝试构建rhandsontable,但这次使用dq_render_handsontable,因为它提供了额外的功能来放置漂亮的过滤器和分页。 在我的应用程序中,我根据选择器输入过滤数据两次,这会创建两个反应性数据帧。。。第一次安装后过滤1(),第二次安装后过滤2() dq_render_handsontable函数可以很好地处理filter_tbl_1()数据,并提供正确的筛选。但是对于filter_tbl_2(),它会抛出一个错误。我的猜测是,它无法识别筛选器_tbl_2()。除此之外,没有错误显示的信息。如果有人能帮忙,我将不胜感激 最小可复制代码:Shiny 使用rhandsontable但不使用dq_render_handsontable的被动数据表,shiny,shiny-reactivity,rhandsontable,Shiny,Shiny Reactivity,Rhandsontable,我正在尝试构建rhandsontable,但这次使用dq_render_handsontable,因为它提供了额外的功能来放置漂亮的过滤器和分页。 在我的应用程序中,我根据选择器输入过滤数据两次,这会创建两个反应性数据帧。。。第一次安装后过滤1(),第二次安装后过滤2() dq_render_handsontable函数可以很好地处理filter_tbl_1()数据,并提供正确的筛选。但是对于filter_tbl_2(),它会抛出一个错误。我的猜测是,它无法识别筛选器_tbl_2()。除此之外,
library(dqshiny)
library(rhandsontable)
library(tibble)
library(dplyr)
ui <- fluidPage(
column(
width = 4,
pickerInput(inputId = "carb_input",
label = "Pick carb",
choices = mtcars %>% pull(carb) %>% unique(),
selected = mtcars %>% pull(carb) %>% unique(),
multiple = TRUE,
options = pickerOptions(
actionsBox = TRUE,
liveSearch = TRUE,
size = 10
)),
pickerInput(inputId = "gear_input",
label = "Pick Gear",
choices = NULL,
multiple = TRUE,
options = pickerOptions(
actionsBox = TRUE,
liveSearch = TRUE,
size = 10
))
),
column(
width = 8,
dq_handsontable_output("review_table", 8L),
rHandsontableOutput("test")
)
)
server <- function(input,output,session){
filter_tbl_1 <- reactive({
mtcars %>% rowid_to_column() %>% filter(carb %in% input$carb_input)
})
observeEvent(filter_tbl_1(),{
choices <- filter_tbl_1() %>% pull(gear) %>% unique()
updatePickerInput(session, "gear_input", choices = choices, selected = choices)
})
filter_tbl_2 <- reactive({
req(input$gear_input)
filter_tbl_1() %>% filter(gear %in% input$gear_input)
})
dq_render_handsontable("review_table",
data = reactive(filter_tbl_1()))
output$test <- renderRHandsontable(rhandsontable(filter_tbl_2()))
}
shinyApp(ui,server)
库(dqshiny)
图书馆(rhandsontable)
图书馆(tibble)
图书馆(dplyr)
用户界面%pull(carb)%%>%unique(),
所选=mtcars%%>%pull(carb)%%>%unique(),
倍数=真,
选项=选取选项(
actionsBox=TRUE,
liveSearch=TRUE,
尺寸=10
)),
选择器输入(inputId=“齿轮输入”,
label=“拾取装备”,
选项=空,
倍数=真,
选项=选取选项(
actionsBox=TRUE,
liveSearch=TRUE,
尺寸=10
))
),
纵队(
宽度=8,
dq_可触摸输出(“查看_表”,8L),
rHandsontableOutput(“测试”)
)
)
服务器%筛选器(carb%在%input$carb\U input中)
})
observeEvent(过滤器tbl 1(){
选择%pull(档位)%%>%unique()
更新输入(会话“齿轮输入”,选项=选项,选定=选项)
})
过滤器\u tbl\u 2%过滤器(在%input$gear\u input中的档位百分比)
})
dq_render_handsontable(“查看_表”,
数据=无功(过滤器1())
输出$test