2016-09-07 56 views
0

我有一个这样的数据集,我正在寻找一种基于我拥有哪种产品来添加类别的方法。将行分配给Openrefine中的类别

我可以搜索Apple + Orange并将它们分配到一个名为Fruits类别,并与Milk + Wine相似,并将它们分配到其他的类别,命名为Drinks

| Item | Category | 
|-------|----------| 
| Apple |   | <-- Fruits 
| Orange|   | <-- Fruits 
| Milk |   | <-- Drinks 
| Wine |   | <-- Drinks 

或者,也许一个简单的方法:找到包含Milk任何行,并将它们分配给Drinks类别?

回答

1

这是没有代码就可以做的事。每个值

  • 创建的Category领域方面的Item领域

    • 过滤器或小
    • 点击edit按钮旁边的空白值在Category面和与你想的类别类型加。
    • 编辑您的Item方面或筛选器以移至下一个类别并重复此过程,直到您将所有项目分类为止。
  • 1

    由于magdmartin说你可以使用方面和编辑来做到这一点 - 他描述的解决方案可能是最简单的方法,而且最不容易出错。但是,如果您喜欢单步执行,则可以使用GREL来测试项目单元格的内容,然后根据项目单元格的内容设置类别单元格中的值。

    with(cells["Item"].value.toLowercase(),w,if(or(w=="orange",w=="apple"),"Fruits",if(or(w=="milk",w=="wine"),"Drinks",""))) 
    

    这与Ettore Rizza给出的方法相同,但在GREL而不是Jython中。

    0

    magdmartin和Owen Stephens给出了很好的答案。使用GREL另一种简单的方法:

    • 从选项下拉菜单为您的 '项目' 选择Edit column > Add column based on this column...
    • 新列名 '类别',并在表达式中设置:

    value.replace("Apple","Fruit").replace("Orange","Fruit").replace("Milk","Drink").replace("Wine","Drink")

    你可以继续添加.replace("whatever food","whatever category")广告nauseum