3

我不确定这是否可以在 Google Refine 中实现。但基本上,我有这样的数据。

在此处输入图像描述

在此处输入图像描述

第一个表是所有用户的表。第二张表显示所有朋友。但是,在"friends"列中的第二个表中,并非所有 id 都存在于我要删除的第一个表中。那么,如何friends在第二个表的列中搜索每个 id 并删除表 1 中不存在的 id?

4

1 回答 1

4

将这两个表放在不同的项目中(我们将它们称为Table1Table2)。

Table2上列friends

  • 使用“拆分多值单元格”将每个值放在单独的行上
  • 将访问者列转换为数字(或反过来将 Table1 中的 user_id 转换为字符串)
  • 将“基于此列添加新列”与表达式一起使用cross(cell,'Table1','user_id').length()

如果没有匹配,则返回 0,如果匹配则返回 1,如果 Table1 中有重复项,则返回 N>1

如果您希望数据恢复为原始格式,请设置一个方面以过滤有效性列,清除所有错误值,然后使用“连接多值单元格”来反转您之前执行的拆分操作。

我为 OpenRefine 2.6 使用 cross() 修复了一些缓存错误,所以如果交叉不起作用,请尝试停止并重新启动 Refine 服务器。

于 2013-01-31T23:58:37.510 回答