Я пытаюсь извлечь все электронные письма из своей учетной записи Gmail, чтобы провести некоторый анализ. Конечная цель - фрейм данных электронных писем. Я использую пакет gmailR.
До сих пор я извлек все потоки электронной почты и «расширил» их, сопоставив все идентификаторы потоков с gm_thread (). Вот код для этого:
threads <- gm_threads(num_results = 5)
thread_ids <- gm_id(threads)
#extract all the thread ids
threads_expanded <- map(thread_ids, gm_thread)
Это возвращает список всех потоков. Его структура представляет собой список объектов gmail_thread. Когда вы углубляетесь на один уровень в список объектов потоков, str(threads_expanded[[1]], max.level = 1)
, вы получаете один объект потока, который выглядит так:
List of 3
$ id : chr "xxxx"
$ historyId: chr "yyyy"
$ messages :List of 3
- attr(*, "class")= chr "gmail_thread"
Затем, если вы углубитесь дальше в сообщения, составляющие потоки, вы начинаете получать полезную информацию. str(threads_expanded[[1]]$messages, max.level = 1)
дает вам список объектов gmail_message для этого потока:
List of 3
$ :List of 8
..- attr(*, "class")= chr "gmail_message"
$ :List of 8
..- attr(*, "class")= chr "gmail_message"
$ :List of 8
..- attr(*, "class")= chr "gmail_message"
Где я застрял, так это извлечение всей полезной информации из каждого письма во всех потоках. Конечная цель - это фрейм данных со столбцом для message_id, thread_id, to, from, et c. Я представляю себе что-то вроде этого:
message_id | thread_id | to | from | ... |
-------------------------------------------------------------------------
1234 | abcd | me@gmail.com | pam@gmail.com | ... |
1235 | abcd | pam@gmail.com | me@gmail.com | ... |
1236 | abcf | me@gmail.com | tim@gmail.com | ... |