3

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

统一标识 | 姓名 | 街道 | 城市 | 国家 | 电话 | ...
SG52D | 公司a | 一条街| 一座城市| c国| 12345
SG52D | 公司a | 一条街| 一座城市| c国| 0099835
dfnsd | B公司| B 街 | B市| c国| 33445
dfnsd | B公司| 不一样 | 另一个 | c国| 33445
xxbb3 | C公司| C街| B市| A 国 | 1111
xxbb3 | C公司| C街| B市| A 国 | 1111

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

统一标识 | 姓名 | 街道 | 城市 | 国家 | 电话 | ...
SG52D | 公司a | 一条街| 一座城市| c国| 12345
SG52D | 公司a | 一条街| 一座城市| c国| 0099835
dfnsd | B公司| B 街 | B市| c国| 33445
dfnsd | B公司| 不一样 | 另一个 | c国| 33445
xxbb3 | C公司| C街| B市| A 国 | 1111

有没有一种简单的方法可以做到这一点?

我知道我可以将所有列连接成一个新列,但这是一个小 PITA,因为列数。

也许新列定义有一种方法可以遍历所有其他列并合并它?

4

2 回答 2

6

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

于 2014-03-11T01:19:10.470 回答
1

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

forEach(["UNID", "Name", "Street", "City", "..." ],x,cells[x].value).join("")
于 2014-01-25T01:13:59.977 回答