Я ищу подмножество фрейма данных, оценивая, является ли один из элементов в столбце, состоящем из списков, частью переменной другого фрейма данных.
В частности, у меня есть набор данных около 200 000 твитов (приобретено через rtweet
), которое я ищу в подмножестве, содержащем только те твиты, которые содержат один (или более) из 10 хэштегов в образце.Эти 10 хэштегов являются наиболее часто совпадающими в образце и хранятся в hashtags_top.
Обычные методы для поднабора не работают (то есть они дают бессмысленные результаты).Я попытался использовать %in%
в нескольких методах подмножеств:
tweets_tops <- subset(tweets, hashtags %in% hashtags_top$Var1)
tweets_tops <- tweets[tweets$hashtags %in% hashtags_top$Var1,]
tweets_tops <- filter(tweets, hashtags %in% hashtags_top$Var1)
Все они дали одно и то же подмножество из 112 твитов, что, безусловно, неверно, учитывая, что только один верхний хэштег показывает более 11 000чириканье.Я также попытался распечатать столбец твитов $ hashtags через
vapply(tweets$hashtags, paste, collapse = ", ", character(1L))
с тем же результатом.
Структура данных выглядит следующим образом [поскольку только столбец "hashtag" имеетбеспокойство здесь, я включу только этот].
str(tweets$hashtags)
List of 196987
$ : chr [1:4] "Professional" "dynamic" "website" "development"
$ : chr NA
$ : chr [1:4] "Professional" "dynamic" "website" "development"
$ : chr "MeTwo"
....
Структура фрейма данных hashtags_top, который используется для поднабора, - это структура простого фрейма данных с двумя столбцами, где Var1 содержит хэштеги, а Freq содержит их частоту:
str(hashtags_top)
'data.frame': 10 obs. of 2 variables:
$ Var1: chr "deutschland" "nsu" "mequeer" "kochallenge" ...
$ Freq: int 1691 1862 2359 2372 2756 2853 3773 3900 8292 11745
I 'Мы пришли к выводу, что оценка с помощью %in%
не работает из-за того, что в фрейме данных есть несколько элементов для оценки.То есть он работает только в том случае, если существует ровно один хэштег (и он является частью желаемого подмножества).Поэтому я ищу решение, которое позволяет проверить, является ли какой-либо из хэштегов в строке частью top_hashtags, и если это так, включить его в подмножество.
Я полагаю, что одним из решений будет выравниваниеФрейм данных, подмножество и удаление дубликатов - но я бы хотел этого избежать.Возможно, есть более простое решение этой конкретной проблемы, но даже после долгого осмотра я не могу найти его.Любая помощь будет принята с благодарностью!