OpenRefine 公式中分割值的平均值

问题描述

在 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.toNumber()).sum() / value.replace('%',').length() + '%'