我的 rHandsontable 下拉列表在 Shiny 应用程序中的查找没有相应地填充的问题?

问题描述

我正在努力通过类似 vlookup 的解决方案(即级联下拉列表)在 RShiny 中逐行填充我的闪亮表。我需要通过在 drodpdown 上选择区域来填充 NA,并且管理器将自动填充。我有主集和查找集,mainData 和 lupData 如下

ma​​inData

一点点:15 x 5

中心日期销售区域经理
1 东购物中心 1/1/2021 50 NA NA
2 西购物中心 1/1/2021 20 NA NA
3 西购物中心 1/1/2021 10 NA NA
4 东购物中心 1/2/2021 15 NA NA
5 东购物中心 1/2/2021 40 NA NA
6 西购物中心 1/2/2021 20 NA NA
7 西购物中心 1/3/2021 15 NA NA
8 东购物中心 1/4/2021 5 NA NA
9 东购物中心 1/4/2021 60 NA NA
10 南购物中心 1/5/2021 66 NA NA
11 南购物中心 1/6/2021 44 NA NA
12 南购物中心 1/7/2021 3 NA NA
13 西购物中心 1/5/2021 75 NA NA
14 西购物中心 1/6/2021 14 NA NA
15 东购物中心 1/7/2021 8 NA NA

lupData

一点点:3 x 2

区域经理
1 东姆索利西 2 西汤姆
3 南菲拉尼

我想在阅读销售来自哪个购物中心(即第一列)之后添加区域下拉菜单,并让经理选择我认为/决定特定购物中心来自的区域。请参考我的代码片段,我在下拉列表中得到的输出似乎没有显示所需的“管理器”功能链接点击

library(shiny)
library(rhandsontable)

ui <- fluidPage(
  p(),rHandsontableOutput("hot",width = "100%",height = "100%")
)

server = function(input,output,session){
  
  DF <- data.frame("centre" = as.factor(c("east shopping mall","west shopping mall","east shopping mall","south shopping mall","east shopping mall")),"date" = as.Date(c("1/1/2021","1/1/2021","1/2/2021","1/3/2021","1/4/2021","1/9/2021","1/11/2021","1/5/2021","1/6/2021","1/7/2021")),"sales" = as.integer(c(50,20,10,15,40,5,60,66,44,3,75,14,8)),#my dropdown column region (must also populate manager) 
                   "region"= rep(as.factor(c("East","West","South")),length = length(c(50,8)))#i.e. max rows on the main table,"manager"= rep(as.factor(c("Mxolisi","Tom","Jerry")),8)))
                   )
  
values <- reactiveValues(data = DF)
  
  observe({
    if(!is.null(input$hot)){
      values$data <- as.data.frame(hot_to_r(input$hot))
    }
  })    
  
  output$hot <- renderRHandsontable({
    
    myTable <- rhandsontable(values$data,width = 1750,height = 5500,selectCallback = TRUE) %>%
      hot_table(highlightCol = TRUE,highlightRow = TRUE,stretchH = "all") %>% 
      hot_col(col = "region",type = "dropdown",source = NULL,readOnly = TRUE,allowInvalid = FALSE)
    
    if(!is.null(input$hot_select$select$r) ){
      myTable <- hot_col(myTable,col = "region",source = values$DF$region[input$hot_select$select$r],readOnly = T)%>% 
        hot_cell(input$hot_select$select$r,readOnly = FALSE)
    }
    
myTable
    
  })
  
}

shinyApp(ui,server)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)