Попытка представить хэштеги на гистограмме

#r #ggplot2 #twitter #data-visualization

Вопрос:

Я загрузил твиты и пытаюсь представить различные хэштеги и то, как часто они публикуются в твиттере.

некоторые данные

 screen_name     location             text                                         created_at          hashtags
  <chr>           <chr>                <chr>                                        <dttm>              <list>  
1 Patrick33079201 "Canada"             "Please sign Romans petition to stop vaccin~ 2021-09-24 23:36:33 <chr [1~
2 wakeupsleepers  "Philippians 3:20 <U 271E>" "@cwt_news When will people wake up?nhttps~ 2021-09-24 23:35:58 <chr [1~
3 keen_alice      " UK"                "Without  scanning qr code vaccine passport~ 2021-09-24 23:34:57 <chr [1~
4 Sledgeh63514792 ""                   "Mike yeadon warned us about being on a com~ 2021-09-24 23:33:10 <chr [1~
5 PeterHu65796484 ""                   "Mike yeadon warned us about being on a com~ 2021-09-24 23:32:41 <chr [1~
6 thbransfield    "here"               "@ksorbs Wow.nnGet the vaccine.  That way~ 2021-09-24 23:32:17 <chr [1~

ggplot(testdata,aes(x=count(unique(hashtags)))) 
  geom_bar()
 

я получаю ошибку

 Error in abs(x) : non-numeric argument to mathematical function
 

я хочу, чтобы он подсчитал все случаи появления различных хэштегов, которые могут присутствовать у каждого пользователя

Комментарии:

1. hashtags Колонка представляет собой list

2. Я попробовал хэш<-таблицу(тестовые данные$хэштеги) и хэш

3. Основываясь на тех, которые вы показали, это list колонка hashtags<list> . Можете ли вы попробовать решение, опубликованное ниже. table также не работает, т. е. table(as.list(letters)) дал бы совершенно другой результат

4. решение создало диаграмму, могу ли я использовать условие if для отображения на графиках только хэштегов с более чем определенным числом, например 200

5. хорошо, это работает, я думаю, что смогу разобраться с остальным отсюда

Ответ №1:

Основываясь на показанных входных данных, «хэштеги» — это list столбец. Возможно, нам потребуется сначала перейти к unnest колонке, прежде чем применять count . Кроме того, count требуется ввод как data.frame/tibble , а не как вектор или список

 library(dplyr)
library(tidyr)
library(ggplot2)
testdata %>%
    unnest(c(hashtags)) %>%
    count(hashtags) %>%
    ggplot(aes(x = hashtags, y = n))   
       geom_col()
 

Или, если нам нужен base R график, unlist столбец, получите счетчик частот table и используйте barplot

 barplot(table(unlist(testdata$hashtags)))