如果所有列都相同,在Google Refine(OpenRefine)中合并行的最简单方法



我正在使用OpenRefine(以前是Google Refine)清理来自多个来源的数据。我有来自不同来源的文件,其中包含公司,列定义相同,即

UNID|名称|街道|城市|国家|电话|。。。sg52d|a公司|a街道|a城市|c国家|1234sg52d|a公司|a街道|a城市|c国家|0099835dfnsd|B公司|B街|B市|c国家|33445dfnsd|B公司|不同|另一个|c国家|33345xxbb3|C公司|C街|B城市|A国家|1111xxbb3|C公司|C街|B城市|A国家|1111

我想要的是这个结果(只有最后一家公司被合并,所有列都相同)

UNID|名称|街道|城市|国家|电话|。。。sg52d|a公司|a街道|a城市|c国家|1234sg52d|a公司|a街道|a城市|c国家|0099835dfnsd|B公司|B街|B市|c国家|33445dfnsd|B公司|不同|另一个|c国家|33345xxbb3|C公司|C街|B城市|A国家|1111

有简单的方法吗?

我知道我可以将所有列连接到一个新列中,但由于列的数量,这是一个小的PITA。

也许有一种方法可以让新的列定义循环通过所有其他列并合并它?

这是一种奇怪的方法,但它应该有效:http://googlerefine.blogspot.com/2011/08/remove-duplicate.html请确保永久更改排序。

您可以使用以下表达式创建新列:

forEach(["UNID", "Name", "Street", "City", "..." ],x,cells[x].value).join("")

最新更新