【发布时间】:2013-01-16 05:04:55
【问题描述】:
我不确定这是否可以在 Google Refine 中实现。但基本上,我有这样的数据。
第一个表是所有用户的表。第二张表显示所有朋友。但是,在"friends" 列的第二个表中,并不是所有的 id 都存在于我想要删除的第一个表中。那么,如何在第二个表的friends 列中搜索每个id 并去掉表1 中不存在的id?
【问题讨论】:
我不确定这是否可以在 Google Refine 中实现。但基本上,我有这样的数据。
第一个表是所有用户的表。第二张表显示所有朋友。但是,在"friends" 列的第二个表中,并不是所有的 id 都存在于我想要删除的第一个表中。那么,如何在第二个表的friends 列中搜索每个id 并去掉表1 中不存在的id?
【问题讨论】:
将这两个表放在不同的项目中(我们称它们为Table1 和Table2)。
在Table2 上的friends 列:
cross(cell,'Table1','user_id').length() 一起使用
如果没有匹配则返回 0,如果有匹配则返回 1,如果 Table1 中有重复则返回 N>1
如果您希望数据恢复为原始格式,请设置一个构面以过滤有效性列,清除所有错误值,然后使用“连接多值单元格”来反转您之前执行的拆分操作.
我在 OpenRefine 2.6 中使用 cross() 修复了一些缓存错误,因此如果 cross() 不起作用,请尝试停止并重新启动 Refine 服务器。
【讨论】:
forEach(value.split(','),v,if(<complex expression using cross>,v,null).join(',') 来拆分朋友字符串,验证每个部分,然后将其重新组合在一起,但我现在没有时间为您组合。