OpenRefine 公式中拆分值的平均值

Average of splited value in OpenRefine formula

在 openrefine 中,通过应用“聚类和编辑”然后应用“加入多值单元格”,我有许多行由 (n) 个值(不同数量)的先前聚类的行组成。

"11.11, 10.06, 10.2, 8.77, 9.4, 5.56"

然后我可以应用一个转换来总结它:

forEach(value.split(','),v,v.toNumber()).sum()

哪个工作正常,但无法弄清楚如何进行类似的过程:

  1. 做同样的事情以获得平均值而不是总和

  2. 如果 % 百分比值如下:

    ,则取平均值

    0.17%、1.49%、0.68%、0.29%、0.72%、22.22%

看看GREL String Functions

要获得平均值,只需将总和除以聚簇行数(长度)即可。

forEach(value.split(','),v,v.toNumber()).sum() / value.split(',').length()

如果数值中包含百分号,可以将其替换为空字符串,然后按上述操作删除。

forEach(value.replace('%','').split(','),v,v.toNumber()).sum() / value.replace('%','').split(',').length() + '%'