r - 将列名称传递给 Shiny 数据表中的目标选项

标签 r datatable shiny

我陷入尝试在columnDefs的目标选项中传递列名称(而不是列号)的困境。该表是动态的,因此我肯定需要选择以列名称为目标的选项。下面是一个可重现的示例。然而,该示例不是动态的。

datatable(iris[c(1:20, 51:60, 101:120), ], options = list(columnDefs = list(list(
  targets = 5,
  render = JS(
    "function(data, type, row, meta) {",
    "return type === 'display' && data.length > 6 ?",
    "'<span title=\"' + data + '\">' + data.substr(0, 6) + '...</span>' : data;",
    "}")
))), callback = JS('table.page(3).draw(false);'))

尝试过 targets = 'Species'targets = iris$Species 但没有成功。

最佳答案

如果您有兴趣将多列设置为不同的宽度,请考虑以下事项(注意 R 使用基于 1 的编号,而 javascript 则基于 0):

  col_a <- which(names(dat) %in% c("column_name1", "column_name2"))
  col_b <- which(names(dat) %in% c("column_name3", "column_name4"))
  col_c <- which(names(dat) %in% c("column_name5"))

  columnDefs = list(list(width = '30px', targets = as.list(col_a - 1)),
                    list(width = '80px', targets = as.list(col_b - 1)),
                    list(width = '200px', targets = as.list(col_c - 1)))

关于r - 将列名称传递给 Shiny 数据表中的目标选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55401210/

相关文章:

Angular ngx-datatable cellTemplate 未加载

javascript - Angular + 数据表 : Clicking Rows Event w/JavaScript

r - 加载绘图时禁用 Shiny 的按钮

r - 从 rvest R 中的属性中抓取名称(值)

r - 根据对应于特定日期的有效值将日期转换为 NA

r - 如何为数据框中的每个元素附加一个序号?

c# - DataTable 或 DataSet 的 XML 反序列化

r - R Shiny 中的 sliderInput 出现问题 - 获取 NaN

使用操作按钮刷新主面板屏幕

r - S4 类交叉引用 - 什么是合适的语法?