问题标签 [grel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7769 浏览

openrefine - 简单的 OpenRefine IF 创建新列

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

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

我知道我的 IF 语句是正确的,因为以下工作

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

0 投票
2 回答
276 浏览

openrefine - OpenRefine 文本转换 unique() 忽略大小写

有没有办法告诉 uniques() 忽略大小写?

我有一个运行的 GREL

这采用逗号分隔的单元格中的每个值,然后吐出该单元格中的唯一值。效果很好,但是如果我有一个包含 Paul, PAUL 的单元格,它将返回两者,而不仅仅是“Paul”。

是否可以将所有值暂时转换为大写进行比较,然后返回您拥有的唯一拼写?

0 投票
1 回答
1406 浏览

json - 在 GREL (OpenRefine) 中解析多值 JSON

我有一个包含以下内容的专栏:

我尝试获取“资源”的内容:

作品。如果我尝试获取多值单元格的内容,我无法让它工作。我根据https://github.com/OpenRefine/OpenRefine/wiki/GREL-Other-Functions尝试过:

我收到很多错误,例如:

而且我只能得到多值单元格,而不是带有这个的单值单元格:

0 投票
1 回答
441 浏览

random - 如何在 GREL 中使用 GoogleRefine 或 OpenRefine 生成随机数?

我想在 GREL 中生成随机数。有没有办法做到这一点?我想使用 GREL 短语,例如:

http://example.org/id/ ” + 随机 + “.html”

0 投票
3 回答
158 浏览

python - 如何使用 Python 或 GREL 将数字添加到字符串中

我有一列需要处理 >4000 个数字。它们看起来像这样: 040 413 560 89 或 0361 223240

我如何将其转换为以下格式: +49 (040) 41356089 或 +49 (0361) 223240

它们都需要具有相同的国家/地区拨号代码+49,然后将各自的区号放入括号中,其中一些已经采用正确的格式。

0 投票
2 回答
940 浏览

jython - OpenRefine:根据变量选择另一列的值

我对 OpenRefine 有疑问。我正在添加一个基于 url 的新列,并从那里调用 API 以从受控词汇表 (AAT) 中获取一些术语。我解析结果并获得一个多值单元格,例如:

http://vocab.getty.edu/aat/300041366||aquatints (prints)::http://vocab.getty.edu/aat/300053242||aquatint (printing process)::http://vocab.getty.edu/aat/300191265||dust bags::http://vocab.getty.edu/aat/300191278||dust boxes::http://vocab.getty.edu/aat/300191278||dust boxes::http://vocab.getty.edu/aat/300191278||dust boxes::http://vocab.getty.edu/aat/300249564||aquatinters::http://vocab.getty.edu/aat/300249564||aquatinters::http://vocab.getty.edu/aat/300249564||aquatinters::http://vocab.getty.edu/aat/300249564||aquatinters::http://vocab.getty.edu/aat/300053242||aquatint (printing process)::http://vocab.getty.edu/aat/300041366||aquatints (prints)::http://vocab.getty.edu/aat/300041368||sandpaper aquatints::http://vocab.getty.edu/aat/300041368||sandpaper aquatints

我有当前结构的地方:

URI||Corresponding_TERM::URI||Corresponding_TERM

等等

我现在需要选择其中一条记录。我的解决方案是使用
value.split("::")[0]
以选择我想要的元素。
不幸的是,这种解决方案有非常明显的缺点,因为数组中元素的顺序不是恒定的,所以如果第一个元素 [0] 对一条记录来说是正确的,那么它可能不是下一条记录。

为了更好地解释自己,我现在有这种结构

我需要将 term1 与 Aquatints 关联,将 term 4 与 Drypoints 关联,将 term 7 与 Woodcut 关联。

我怎样才能做到这一点?一个解决方案可能是使用 facet 和大量的手动工作,但也许有更好的解决方案?去每条记录怎么样,如果 ID = 1 他们应该使用 term1,如果 ID=2 应该使用 term 4 等等。这可能吗?我真的不知道如何使用另一列的值作为变量来确定操作的结果。cell.cross 会有所帮助,但如果我需要将数据拆分为两个文件,并且在我看来这不是一个合适的解决方案..

0 投票
1 回答
330 浏览

openrefine - 使用 Google Refine 解析多个值

我有一个包含这样内容的 CSV 列(只是一个例子):

我想自动从“名称”字段中提取值并用逗号分隔,结果如下:CLARCK C COHO、ALPHA SA、JACK SA 等等。

我知道我可以使用此代码获得特定值:

我一直在阅读文档,但我不知道如何在所有字段之间循环。

有小费吗?

编辑:这是该列的另一个示例。内容真的是这样的:

0 投票
2 回答
567 浏览

regex - 删除双引号前的所有内容

我正在尝试清理一个 CSV 文件,该文件有一列内容如下:

而且我想删除第一个引号(“)之前的所有内容,以保留以下内容:

我知道我可以使用 $` 在正则表达式中的某些匹配之前获取所有内容,但我不明白如何在第一个双引号之前保留字符串。

0 投票
2 回答
505 浏览

date - 在openrefine中寻找一种计算时间间隔的方法

这是 OpenRefine 上 GREL 语言的给定表达式。

diff(日期 d1,日期 d2,可选字符串 timeUnit)

对于日期,返回给定时间单位的差异。

所以问题是如何访问两列的值,这在文档中并不清楚。

谢谢

0 投票
2 回答
2453 浏览

regex - 使用现有列的逻辑测试在 OpenRefine 中创建列?

我有一个原始数据集,其中包含代表土地交易的 4,500 多个行条目。现有列之一是“地点”,在每个单元格值中,我通常将地点名称设为Some Neighborhood,但有时当有一个我不知道的地点时,我会从公证记录中添加其他信息,例如,Some Neighborhood, Some County甚至作为Some Neighborhood, Some County (nicknamed)

我想使用这一列中的信息创建两个新列。第一列将包含上级行政区划,第二列包含上级行政区划——有点像缩小。

我想我需要使用某种逻辑测试或 if-if-if-test 基于现有列创建一个新列,在其中我可以枚举Some Neighborhood属于County 1or County 2orCity 1等​​的值。然后,基于这个新列,我会创建另一个具有State 1,State 2等的,大概使用相同类型的测试。

我将如何在 Open Refine GREL 中使用正则表达式来编写它?如何将在单元格中找到的多个可能值串在一起?我尝试使用cellsvalue.contains但我不知道如何将这样的倍数串在一起。

所以再次回顾一下,我想编写一种方法来创建一个新列,该列包含基于现有值列的新单元格值,例如

如果 Street1, Street2,Street5, 但不是 Street3, 或Street4,那么 County1

或者

如果 Street1Street2Street5, 然后 County1 AND THEN 如果 Street3Street4 然后 County2


编辑:这是一些数据:

下面是一个带有两个新列的预期结果示例,比如说“Commune”和“Section”: