当前位置:  开发笔记 > 编程语言 > 正文

使用Shiny(R)将动态鼠标悬停添加到DataTable中列中的所有条目

如何解决《使用Shiny(R)将动态鼠标悬停添加到DataTable中列中的所有条目》经验,为你挑选了0个好方法。

我很确定我的问题已经有了答案,但无论我搜索多么努力,我都找不到任何可以解决这个问题的解决方案.因此,如果这被认为是微不足道的,请不要拍.

现在问题在于:

假设我们使用Shiny渲染dataTable,当我将鼠标悬停在单元格上并从底层数据集动态输出时,我想获取每个单元格的id(rowID + columnID).我知道已有鼠标悬停的解决方案,例如shinyBS或此示例:

    #server.R:
    shinyServer(function(input, output) {
  dat <- list(iris,cars) 
  output$tabset <- renderUI({
    tabs <- list()
    for(i in c(1,2)){
      id <- paste("id",i, sep="")
      tabs[[i]] <- tabPanel(title=id,DT::dataTableOutput(outputId=id)) #dynamic panels
    }
    do.call(tabsetPanel,c(tabs, id='Panel'))
  })

  lapply(1:2,function(i){
    id <- paste("id",i, sep="")
    output[[id]] <- DT::renderDataTable({
      dat[[i]]},
      extensions = c('Scroller'),
      options=list(deferRender=TRUE, dom='T<"clear">fitrS', scrollY=540, searchHighlight = TRUE,
                   scrollCollapse=TRUE, autoWidth = TRUE,
                   columnDefs = list(list(width = '60%', targets = '_all',
                                          render = JS("function(data, type, row, meta) {",
                                                      "return type === 'display' && data.length > 5 ?",
                                                      "'' + data.substr(0, 5) + '...' : data;",
                                                      "}"
                                          )))),
      callback = JS('table.page(3).draw(false);'),
      escape=FALSE, rownames=TRUE,class = 'table-condensed', server=TRUE)
      })
})

和ui.R

    #ui.R:
library(shiny)
library(DT)

ui <- fluidPage(
  uiOutput('tabset')
)

如果一个单元格的长度为5或更长,则会有一个鼠标悬停.我现在要做的是看看突出显示的单元格是否来自带有'id1'的面板,来自列Sepal.Length,鼠标悬停应该显示来自面板'id2'的数据,它具有与Sepal相同的rowId.长度并应显示列dist的数据.基本上我想要不要呈现静态内容或只是修改已经在该单元格中的字符串,而是根据已经悬停的单元格动态地呈现其他内容.这有可能与Shiny和JavaScript?

感谢您的任何意见.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有