2

所以我试图找到一种简单的方法来创建一个新列,该列显示两个现有列(每个列都有数字)之间的差异......我似乎找不到合适的 GREL 表达式......

所以我试图找到一个名为“stock_before”的列和另一个名为“stock_after”的列的销售量。

我单击“stock_before”列中的编辑列,然后根据该列添加列。

对于我已经输入的 GREL 是: value-cells["Stock_after"] 它没有返回语法错误,但预览的所有单元格仍然显示为“null”...我已将列的值转换为数字。

对于 Python,我尝试过: substract(value,"Stock_after") 同样没有语法错误,但仍然为空。

这看起来非常简单,但我找不到答案......你可以猜到我对这一切都很陌生 :) 希望有人能帮助我!

感谢您耐心阅读本文,如果您回答,感谢您抽出宝贵时间!

我想要与此类似的内容(3 列):

Stock_before、Stock_after、差异

1,1,0

3,1,2

4,4,0

2,1,1

4

1 回答 1

0

在 GREL 中,表达式cells["Stock_after"]返回一个Cell表示相应单元格的对象,而不是该单元格的实际值。要获得价值,您需要使用cells["Stock_after"].value.

所以你最终的 GREL 表达式应该是value - cells["Stock_after"].value.

您还应该确保您的值存储为数字,而不是字符串:它们应该在表格中以绿色显示。如果没有,请先在两列上使用“To number”操作。

您可以在此处找到有关 GREL 和 Cell 对象的更多信息: https ://github.com/OpenRefine/OpenRefine/wiki/Variables

于 2019-10-03T15:15:22.987 回答