Openrefine, получить все цифры из интервала - PullRequest
0 голосов
/ 23 марта 2020

У меня есть такие ячейки:

031 - 039

, и я хочу преобразовать его в разные ячейки со всеми числами между ними:

031 032 033 034 035 036 037 038 039

Как я могу это сделать?

Обновление

Попытка работы с python / jython:

if " - " in value:
   number_list = []
   first = int(value.split(" - ")[0])
   last = int(value.split(" - ")[1])
   for i in range(first, last):
       i += 1
       num = str(i)
       number_list.append(num)
   return str(first)+"|"+"|".join(number_list)
else:
   return value

Не знаю Теперь действительно, как создать новую ячейку в Jython с желаемыми значениями. Поэтому я сделаю это на втором шаге, разделив «нормальный» на «|».

Ответы [ 2 ]

1 голос
/ 23 марта 2020

Вы находитесь на правильном пути с вашим обновлением, хотя вы можете немного упростить его.

>>> first,last = "31 - 39".split(" - ")
>>> "|".join([format(i,"03") for i in range(int(first),int(last)+1)])
'031|032|033|034|035|036|037|038|039'

Невозможно создать новые строки / ячейки, поэтому с помощью «Разделить многозначные ячейки» ваша лучшая ставка.

0 голосов
/ 23 марта 2020

C# пример:

var input = "31 - 39";
var tmp = input.Split("-");
var start = int.Parse(tmp[0].Trim());
var end = int.Parse(tmp[1].Trim());
var count = end - start + 1;

var result = Enumerable.Range(start, count);
...