我想为按
rowGroup
库的 DT
扩展分组的表生成行聚合。我可以使用 rowGroup
对数据框进行分组,但不清楚如何在摘要行中填充聚合值。
rowGroup.startRender
。但是,我不清楚如何在 R DT
库 rowGroup
扩展中实现这一点。
我想获取每组的样本数量以及每组的平均重量。
DT::datatable(chickwts,
rownames = TRUE,
extensions="RowGroup",
options = list(rowGroup = list(dataSrc=c(2),
columnDefs = list(list(visible=FALSE, targets=c(2))))
))
调整引用链接中的示例,您可以通过将自定义 JS 渲染函数添加到
startRender
列表的 rowGroup
属性来实现所需的结果:
DT::datatable(chickwts,
rownames = TRUE,
extensions = "RowGroup",
options = list(rowGroup = list(
dataSrc = c(2),
columnDefs = list(list(visible = FALSE, targets = c(2))),
startRender = htmlwidgets::JS(
"
function (rows, group) {
function addCell(tr, content, colSpan = 1) {
let td = document.createElement('th');
td.colSpan = colSpan;
td.textContent = content;
console.log(td);
tr.appendChild(td);
}
let count = rows.count();
let mean =
rows
.data()
.pluck(1)
.reduce((a, b) => a + b) / rows.count();
mean = DataTable.render
.number(null, null, 0)
.display(mean);
let tr = document.createElement('tr');
addCell(tr, group, 2);
addCell(tr, 'n = ' + count + ', mean = ' + mean, 1);
return tr;
}
")
))
)