OpenRefine: создать сдвинутую копию столбца
Интересно, позволяет ли OpenRefine получать доступ к данным из других строк при создании нового столбца. Я подозреваю, что это не так (и это был бы разумный принцип разработки), но вокруг этого может быть взлом.
Вот пример того, что можно было бы сделать: сдвиг столбца на одну строку.
У меня есть следующая таблица:
╔═════╦════════╗
║ row ║ Model ║
╠═════╬════════╣
║ 1 ║ Quest ║
║ 2 ║ DF ║
║ 3 ║ Waw ║
║ 4 ║ Strada ║
╚═════╩════════╝
И я хочу получить следующий результат:
╔═════╦════════╦══════════╗
║ row ║ Model ║ Previous ║
╠═════╬════════╬══════════╣
║ 1 ║ Quest ║ ║
║ 2 ║ DF ║ Quest ║
║ 3 ║ Waw ║ DF ║
║ 4 ║ Strada ║ Waw ║
╚═════╩════════╩══════════╝
Глядя на https://github.com/OpenRefine/OpenRefine/wiki/Variables кажется, что нет никакой переменной, которая позволила бы вам получить доступ к информации вне текущей строки или записи, поэтому мне интересно, возможна ли такая операция.
1 ответ
К сожалению, в Open Refine нет переменной "column". Возможный обходной путь - превратить весь набор данных в одну запись, а затем применить немного Python/Jython.
Пример:
data = row['record']['cells']['Model']['value']
for i, el in enumerate(data):
if value == el and i !=0:
return data[i - 1]
Screencast:
Я не знаю, возможно ли решение в GREL.