Как я могу объединить два набора данных с помощью ключа в OpenRefine, когда вторичная таблица имеет более одного значения?

У меня есть такой набор данных X:

Code | Name
------------
123  | AAA
456  | BBB

А другой Y такой:

Code | Level
------------
123  | A
123  | B
456  | B
456  | C

Я хочу присоединиться к ним с помощью OpenRefine примерно так:

Code | Name | Level A | Level B | Level C
------------------------------------------
123  | AAA  |  value  |  value  |   -
456  | BBB  |    -    |  value  | value

Когда я пытаюсь добавить столбец с помощью cell.cross () из 'X.Code', он получает значение только из первого появления 'X.Code' в ' Да '.

cell.cross("Y", "Code")[0].cells["Rede"].value[0]

Как я могу получить желаемый результат с помощью GREL?


person Bruno    schedule 03.03.2016    source источник


Ответы (1)


Вам нужно Построить столбец по ключу / значению в вашем проекте Y, чтобы в нем был один столбец по уровню, как в примере ниже. Используйте 1_

Code | Level A | Level B | Level C
------------------------------------------
123  | value  |  value  |   -
456  |   -    |  value  | value

Затем вы можете использовать функцию cell.cross для каждого столбца. Например: cell.cross("Y", "Code")[0].cells["Level A"].value[0] для импорта данных в Project X

person magdmartin    schedule 03.03.2016
comment
Спасибо @magdmartin, заработало! Просто для завершения мне пришлось удалить все недублирующиеся столбцы, чтобы эта процедура работала, так как это не всегда может быть желательно. - person Bruno; 08.03.2016
comment
Рад видеть, что это работает. Пожалуйста, примите ответ, чтобы сообщество знало, что на него есть ответ. - person magdmartin; 09.03.2016