0

分析を行うために、Gmail アカウントからすべてのメールを抽出しようとしています。最終的な目標は、メールのデータフレームです。gmailR パッケージを使用しています。

これまでのところ、すべてのメール スレッドを抽出し、すべてのスレッド ID を 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 オブジェクトのリストです。スレッド オブジェクトのリストを 1 レベルドリルダウンすると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 などの列を持つデータフレームです。次のようなものを想像しています。

    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    | ... |
4

1 に答える 1