问题标签 [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.
openrefine - 简单的 OpenRefine IF 创建新列
我试图创建一个包含 true 或 false 的新列。基本上,A 列中有一个数字,介于 1 和 6 之间,如果它高于 3,我希望新列“匹配”包含 true,否则包含 false。在尝试以下 GREL 时使用基于列的添加列
这基本上导致一切都是错误的。
我知道我的 IF 语句是正确的,因为以下工作
我只是困惑为什么如果 Value 大于 5 不起作用,它显然缺少一些东西,但我似乎无法在文档中指出它。
openrefine - OpenRefine 文本转换 unique() 忽略大小写
有没有办法告诉 uniques() 忽略大小写?
我有一个运行的 GREL
这采用逗号分隔的单元格中的每个值,然后吐出该单元格中的唯一值。效果很好,但是如果我有一个包含 Paul, PAUL 的单元格,它将返回两者,而不仅仅是“Paul”。
是否可以将所有值暂时转换为大写进行比较,然后返回您拥有的唯一拼写?
json - 在 GREL (OpenRefine) 中解析多值 JSON
我有一个包含以下内容的专栏:
我尝试获取“资源”的内容:
作品。如果我尝试获取多值单元格的内容,我无法让它工作。我根据https://github.com/OpenRefine/OpenRefine/wiki/GREL-Other-Functions尝试过:
我收到很多错误,例如:
而且我只能得到多值单元格,而不是带有这个的单值单元格:
random - 如何在 GREL 中使用 GoogleRefine 或 OpenRefine 生成随机数?
我想在 GREL 中生成随机数。有没有办法做到这一点?我想使用 GREL 短语,例如:
“ http://example.org/id/ ” + 随机 + “.html”
python - 如何使用 Python 或 GREL 将数字添加到字符串中
我有一列需要处理 >4000 个数字。它们看起来像这样: 040 413 560 89 或 0361 223240
我如何将其转换为以下格式: +49 (040) 41356089 或 +49 (0361) 223240
它们都需要具有相同的国家/地区拨号代码+49,然后将各自的区号放入括号中,其中一些已经采用正确的格式。
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 会有所帮助,但如果我需要将数据拆分为两个文件,并且在我看来这不是一个合适的解决方案..
openrefine - 使用 Google Refine 解析多个值
我有一个包含这样内容的 CSV 列(只是一个例子):
我想自动从“名称”字段中提取值并用逗号分隔,结果如下:CLARCK C COHO、ALPHA SA、JACK SA 等等。
我知道我可以使用此代码获得特定值:
我一直在阅读文档,但我不知道如何在所有字段之间循环。
有小费吗?
编辑:这是该列的另一个示例。内容真的是这样的:
regex - 删除双引号前的所有内容
我正在尝试清理一个 CSV 文件,该文件有一列内容如下:
而且我想删除第一个引号(“)之前的所有内容,以保留以下内容:
我知道我可以使用 $` 在正则表达式中的某些匹配之前获取所有内容,但我不明白如何在第一个双引号之前保留字符串。
date - 在openrefine中寻找一种计算时间间隔的方法
这是 OpenRefine 上 GREL 语言的给定表达式。
diff(日期 d1,日期 d2,可选字符串 timeUnit)
对于日期,返回给定时间单位的差异。
所以问题是如何访问两列的值,这在文档中并不清楚。
谢谢
regex - 使用现有列的逻辑测试在 OpenRefine 中创建列?
我有一个原始数据集,其中包含代表土地交易的 4,500 多个行条目。现有列之一是“地点”,在每个单元格值中,我通常将地点名称设为Some Neighborhood
,但有时当有一个我不知道的地点时,我会从公证记录中添加其他信息,例如,Some Neighborhood, Some County
甚至作为Some Neighborhood, Some County (nicknamed)
。
我想使用这一列中的信息创建两个新列。第一列将包含上级行政区划,第二列包含上级行政区划——有点像缩小。
我想我需要使用某种逻辑测试或 if-if-if-test 基于现有列创建一个新列,在其中我可以枚举Some Neighborhood
属于County 1
or County 2
orCity 1
等的值。然后,基于这个新列,我会创建另一个具有State 1
,State 2
等的,大概使用相同类型的测试。
我将如何在 Open Refine GREL 中使用正则表达式来编写它?如何将在单元格中找到的多个可能值串在一起?我尝试使用cells
,value.contains
但我不知道如何将这样的倍数串在一起。
所以再次回顾一下,我想编写一种方法来创建一个新列,该列包含基于现有值列的新单元格值,例如
“如果 Street1
, Street2
,Street5,
但不是 Street3
, 或Street4
,那么 County1
”
或者
“如果 Street1
或Street2
或Street5,
然后 County1
AND THEN 如果 Street3
或Street4
然后 County2
”
编辑:这是一些数据:
下面是一个带有两个新列的预期结果示例,比如说“Commune”和“Section”: