我正在使用OpenRefine(Google Refine)从多个来源清理数据。我有来自不同来源的文件,其中包含公司,列定义相同,即
UNID | Name | Street | City | Country | Phone | ... sg52d | Company a | A street | a city | c country | 12345 sg52d | Company a | A street | a city | c country | 0099835 dfnsd | Company B | B Street | City B | c country | 33445 dfnsd | Company B | Different | Another | c country | 33445 xxbb3 | Company C | C Street | City B | Country A | 1111 xxbb3 | Company C | C Street | City B | Country A | 1111
我想要的是这个结果(只合并了最后一家公司,所有列都相同)
UNID | Name | Street | City | Country | Phone | ... sg52d | Company a | A street | a city | c country | 12345 sg52d | Company a | A street | a city | c country | 0099835 dfnsd | Company B | B Street | City B | c country | 33445 dfnsd | Company B | Different | Another | c country | 33445 xxbb3 | Company C | C Street | City B | Country A | 1111
有一种简单的方法吗?
我知道我可以将所有列连接到一个新列,但这是一个小PITA,因为列数。
也许有一种方法可以让新列定义循环遍历所有其他列并合并它?
答案 0 :(得分:6)
这是一种奇怪的方法,但这应该有效:http://googlerefine.blogspot.com/2011/08/remove-duplicate.html 确保将排序更改永久化。
答案 1 :(得分:1)
您可以使用如下表达式创建新列:
forEach(["UNID", "Name", "Street", "City", "..." ],x,cells[x].value).join("")