Предоставлено ответ @ Яап от this stackoverflow questionКак выбрать первое значение, разделенное запятой, в столбце в data.table?
данных является чем-то вроде этого:
Name Text idx c_org
1: John Text contains MIT 1 MIT
2: Sussan some text with Stanford University 2 Stanford
3: Bill He graduated from Yale, MIT, Stanford. 3 MIT,Yale,Stanford
4: Bill some text 4
Для столбца c_org
, если есть несколько значений, как в наблюдении 3, MIT,Yale,Stanford
, я бы сделать первый значение, MIT
в качестве значения столбца. Результат должен нравится:.
Name Text idx NewOrg
1: John Text contains MIT 1 MIT
2: Sussan some text with Stanford University 2 Stanford
3: Bill He graduated from Yale, MIT, Stanford. 3 MIT
4: Bill some text 4
(обратите внимание, что в c_org
колонки, некоторые поля имеют более чем одно значение, а некоторые даже пусто В ожидаемом выходе, если есть только одно значение, сохранить его, если более чем один, держать первый один, если он пуст, оставьте пустым)
Я попытался это (но не удалось):
DT[ , str_split(c_org, ",")[[1]][1]]
Я предполагаю, что это довольно часто, чтобы встречал данные, что есть больше чем один. значение в одном поле. Как это сделать в data.table
? (Или по-другому, если решение лучше, чем data.table
)