2

我花了一些时间谷歌搜索,但找不到任何有用的东西。

如何在脚本中选择OpenRefine单个列的所有值?

似乎所有操作都是逐行的

特别是,我想在一列中找到最高值和最低值

4

3 回答 3

0

默认情况下,OpenRefine 功能仅限于计算。Stats Extension对每列进行基本统计(最小值、最大值、平均值、中等......)。

于 2015-10-27T13:52:15.167 回答
0

Text Facet 有一个很好的未记录选项,可以在一个列中为您提供聚合结果,您只需复制和粘贴即可。

  1. 单击文本构面框左上角的“X 选项”。
  2. 这将打开一个单独的对话框,其中包含值以及该列中每个值的计数。

(如果您只想获取单个列的所有值,请使用 Export -> Custom Tabular Exporter,然后通过单击复选框选择并排序要导出的列,然后单击“下载”选项卡以选择您的导出格式,然后单击“下载”按钮。)

在此处输入图像描述 在此处输入图像描述

于 2015-10-28T15:12:23.827 回答
0

构面将为您提供列中所有值的列表 - 因此,获取列中最低/最高值的最简单方法是在列上创建一个构面并查看构面中产生的最高/最低值以获得答案.

但是,我不确定这是否符合您在“脚本”中选择值的标准。我假设您的意思是您希望能够访问 GREL 表达式中的最低/最高值?

您可以这样做,但您必须强制 OpenRefine 将项目中的所有行视为单个记录的一部分。最简单的方法通常是在项目的开头添加一列,除了包含值的第一个单元格之外,该列是空的。

完成此操作后,您可以使用以下语法访问列中的所有值:

row.record.cells["Column name"].value

另请参阅我对 OpenRefine 的回答- 在单元格之间填充,但不在使用相同技术的列表末尾

进一步说明:

  1. 在项目开始时创建一个新列,并在该列的第一个单元格中放置一个值
  2. 切换到录制模式此时,您的项目中应该有一个“录制” - 例如

在 OpenRefine 中强制单条记录

此时,使用类似 row.record.cells["Column 1"].value 的语法会为您提供一个包含“Column 1”中所有值的数组。然后,您可以使用 GREL 表达式来操作它 - 包括排序或比较值。

于 2015-10-27T13:50:44.197 回答