Разделить строковый столбец на несколько фиктивных переменных
Как относительно неопытный пользователь пакета data.table в R, ямы пытались обработать один текстовый столбец в большое количество столбцов-индикаторов (фиктивных переменных), где 1 в каждом столбце указывает на то, что в строковом столбце была найдена определенная подстрока. Например, я хочу обработать это:
ID String
1 a$b
2 b$c
3 c
в это:
ID String a b c
1 a$b 1 1 0
2 b$c 0 1 1
3 c 0 0 1
Я понял, как выполнять обработку, но она занимает больше времени, чем хотелось бы, и я подозреваю, что мой код неэффективен. Воспроизводимая версия моего кода с фиктивными данными приведена ниже. Обратите внимание, что в реальных данных существует более 2000 подстрок для поиска, каждая подстрока имеет длину около 30 символов и может содержать до нескольких миллионов строк. При необходимости я могу распараллелить и использовать много ресурсов для решения этой проблемы, но я хочу максимально оптимизировать код. Я попытался запустить Rprof, который не предложил никаких очевидных (для меня) улучшений.
set.seed(10)
elements_list