У меня есть таблица данных:
dt <- data.table(col1=c('aa,bb', 'bb,cc,ee', 'dd,ee'), col2=c('aa', 'cc', 'aa'))
> dt
col1 col2
1: aa,bb aa
2: bb,cc,ee cc
3: dd,ee aa
Я хочу проверить, встречается ли столбец 2 в строке strsplit первого столбца, поэтому для первой строки, если aa
присутствует в aa,bb
, разделенном запятой, что верно. Это также верно для второго ряда и ложно для третьего. Я только хочу сохранить строки там, где это происходит, поэтому только строки 1 и 2.
Моей первой мыслью было сделать это так:
dt[col2 %in% strsplit(col1, ',')]
Однако, это возвращает пустой data.table.
Я могу придумать несколько решений для решения этой проблемы, включая создание новых столбцов с использованием tstrsplit
или плавление таблицы данных, но все это немного утомительно для такой, казалось бы, простой задачи. Какие-либо предложения?