我遇到了您在寻找解决方案的问题,我相信我已经找到了一种方法来做您想做的事。我知道这个问题已经超过 2 年了,但希望它会被需要解决方案并被认为有帮助的人找到。
要按“vals”和另一个指标(如“cols”或“rows”)排序,需要在 sorters 函数中简单地包含另一个“if”语句。
使用开发人员提供的可重现示例作为起点:
library(rpivotTable)
data(HairEyeColor)
rpivotTable(data = HairEyeColor, rows = "Hair",cols="Eye", vals = "Freq", aggregatorName = "Sum", rendererName = "Table", sorters = "
function(attr) {
var sortAs = $.pivotUtilities.sortAs;
if (attr == \"Hair\") { return sortAs([\"Red\", \"Brown\", \"Blond\", \"Black\"]); }
}", width="100%", height="400px")
下一步是if (attr == '\"\"
在头发颜色后的右括号后添加另一个 ) 语句。例如,假设您还想按眼睛颜色排序,首先列出的是棕色而不是蓝色。您将编写以下代码来完成此操作:
library(rpivotTable)
data(HairEyeColor)
rpivotTable(data = HairEyeColor, rows = "Hair",cols="Eye", vals = "Freq",
aggregatorName = "Sum", rendererName = "Table", sorters = "
function(attr) {
var sortAs = $.pivotUtilities.sortAs;
if (attr == \"Hair\") { return sortAs([\"Red\", \"Brown\", \"Blond\", \"Black\"]);}
if (attr == \"Eye\") { return sortAs([\"Brown\", \"Blue\", \"Green\", \"Hazel\"]);}
}", width="100%", height="400px")
请记住,此包是围绕 PivotTable.js 开发的,因此您可以$.pivotUtilities.sortAs
在代码中包含该函数的功能来执行其他排序,例如升序和降序。请参阅PivotTable.js 文档