我有一个非常大的(800行)OpenRefine数据集。一个单元格包含多个不同的值,但具有一致的结构(请参阅下面的示例),其数据通过与json数组相似的逗号分隔。我想创建一个新的多值列,其中只包含特定类别的元素,例如Creator或Subject。在下面的例子中,我想创建一个名为Item Creator的新列,其中只包含Dana M. Ashley和John Smith,这两个列在文本中。到目前为止,我已经尝试了表达式forEach(value.split(","), v, v.contains("Creator:"))
,并且我得到了一个数组来识别包含Creator的段,但我还不知道如何将该字符串文本提取到新列中。帮助将不胜感激。使用多值字段中的选定子字符串创建新列
Publisher: American Federation of Teachers, Creator: Dana M. Ashley, Creator: John Smith, Subject: Prosocial behavior, Subject: Program development, Subject: Behavior problems, Subject: Classroom techniques, Subject: Student behavior, Subject: School culture, Subject: Educational environment, Subject: Positive Behavior Supports, Resource Type: Text, Language: English, Audience: Educator, Format: pdf
谢谢欧文。我并不清楚 - 我了解创建新列的过程,但是在那里,我非常重视从分割中获取真实的数组项,并将它们转换为相关新列中的文本。以下是我使用我列出的GREL公式时在预览中显示的示例。 - '[错误,真实,真实,假,假,假,假,假,假,假,假,假,假,假,假,假,假,假,假] – user3206
如果您在GREL中使用'过滤器'来代替'forEach',您将获得值而不是真/假 –
这就是我正在寻找的答案。非常感谢。 – user3206