Openrefine 将计数器添加到值

Openrefine add Counter to value

我正在使用文本构面来仅获取包含特定值的行。对于生成的行,我想用另一列的值填充一列。我就是这样做的:

cells["Auto_Objektkennung"].value

如何为每个以 0 开头的值添加一个连续的数字?

伪代码:

cells["Auto_Objektkennung"].value + '-' + COUNTER+1

不幸的是,行索引没有帮助,因为我不是从一个开始而是从 8000 左右开始的文本方面

cells["Auto_Objektkennung"].value + '-' + row.record.index

这是一种使用 OpenRefine 和 GREL 实现此目的的手动方法,无需将任务委托给 Clojure 或 Jython。

思路:我们可以先创建基于文本分面或文本过滤器的记录。 然后我们可以使用 row.record.index 来创建预期的“连续数字[s]”。

食谱:

  1. 在您的文本构面(或过滤器)处于活动状态的情况下,添加一个名为“record_marker”的新列。
  2. 将新列“record_marker”移到开头。
  3. 使用表达式 row.record.index - 1 添加新列“counter”。
  4. 空白新的“计数器”列。
  5. 您现在可以在表达式中使用“计数器”列。
if(cells["counter"].value >= 0, cells["Auto_Objektkennung"].value + "-" + cells["counter"].value, "")
  1. 通过删除“record_marker”和“计数器”列进行清理。