Как перебрать более 5 миллионов строк в кадре данных, добавив значение TRUE/FALSE в новый столбец в зависимости от того, имеют ли 2 списка в 2 других столбцах общие элементы?

avatar
crickegg
1 июля 2021 в 16:36
19
0
0

У меня есть кадр данных, содержащий 2 столбца со списками терминов. Я хочу добавить флаг, который сообщает мне, существует ли один или несколько терминов в столбце A также в столбце B, чтобы я мог исключить эти строки из моего набора данных. У меня есть цикл for, который отлично справляется с несколькими тысячами наблюдений, но мне нужно запустить процесс для миллионов строк.

Как лучше всего оптимизировать этот процесс? Спасибо

    for(i in 1:nrow(printme)) {

printme$flag[i] <- any(printme$Words[[i]] %in% printme$Words2[[i]])

}
Источник
IRTFM
1 июля 2021 в 16:39
1

Вам нужно опубликовать небольшой пример в качестве редактирования тела вопроса. Я предлагаю использовать вывод dput( head(printme)). (Может быть гораздо более эффективный метод, чем этот процесс for-loop, но для его разработки требуется знание структуры ваших данных. Dataframe обычно не является списком; скорее, это векторы, и использование на них «[[» обычно терпит неудачу.)

Ответы (0)