简单的 OpenRefine IF 来创建一个新列

Pau*_*l M 5 openrefine grel

我正在尝试创建一个包含 true 或 false 的新列。基本上,A 列中有一个数字,介于 1 和 6 之间,如果它高于 3,我希望新列“匹配”包含真,否则包含假。在尝试以下 GREL 时使用基于列的添加列

if(value > 5, "True", "False")
Run Code Online (Sandbox Code Playgroud)

这基本上导致一切都是假的。

我知道我的 IF 语句是正确的,因为以下有效

if(value.length() > 1, "Double", "Single")
Run Code Online (Sandbox Code Playgroud)

我只是困惑为什么如果 Value 大于 5 不起作用,它显然缺少某些东西,但我似乎无法在文档中指出它。

Tha*_*dry 6

你的 GREL if() 是正确的。我们的文档在这里:https : //github.com/OpenRefine/OpenRefine/wiki/GREL-Controls

但我想知道您是否真的在该 Column 中拥有所有数字值?所有值都是“绿色”颜色吗?如果没有,请尝试使用编辑列修剪空白,然后将文本转换为数字。然后再次在该列上尝试 if() ,看看会发生什么。

  • 或者,您可以修改 GREL 以包含此步骤(将原始列保留为字符串)- if(value.toNumber() > 5, "True", "False") (4认同)