Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rに管理されてみる

 Rに管理されてみる

Tokyo.R #100でのプレゼン資料です。
イベントURL: https://tokyor.connpass.com/event/253867/

Avatar for Kazuhiro Maeda

Kazuhiro Maeda

July 23, 2022
Tweet

More Decks by Kazuhiro Maeda

Other Decks in Programming

Transcript

  1. はじめに 所属 LINE Fukuoka株式会社 Data Scientist DataLabs Data Science Team

    - Manager Data Engineering & Solution Team - Manager LINE株式会社 CDO Office 5 / 27
  2. Task Management Task Managementは”めんどくさい” なので、いろいろなツールがある JIRA Trello Confluence (!?) Slack(!?!?)

    Excel(!?!!?!!?!?!?!?!?!?!) etc… 私は複数のプロジェクトにassign プロジェクトでツールが異なる めんどくさい 自分用にTrelloを使う(2021/04~) 8 / 27
  3. Task Management Trelloのめんどうなところ アーカイブが使いづらい 検索しづらい 削除がしづらい Archived -> removeしかできない Reportが弱い

    Textベース 分析できない 業務の傾向などが分析できない ...よろしい、ならばRだ 10 / 27
  4. Trello with R httrで叩いてみた key/tokenはkeyring パッケージを使って保持させてみた base_url , path あたりは雑に別途作成

    雑に叩いてみた first_api_call <- GET( url = base_url, add_headers(Accept = ""), add_headers(Accept = "application/json"), path = paste(me_path, "boards", sep = "/"), query = list( key = keyring::key_get("trello_api_key"), token = keyring::key_get("trello_api_token") ), verbose() ) うまくいった 13 / 27
  5. Trello with R key/token情報の保持 set_trello_auth_infos(force_update = FALSE) https://github.com/kazutan/trelloR/blob/master/R/api.R#L23-L56 認証情報はkeyring パッケージを利用することに

    対話的にkey/tokenをセットするのでRのログに残らない すでに登録してある場合、強制的にupdateしたい場合は引数で指定 check_trello_auth_infos(key = NULL, token = NULL, null_return = NULL) https://github.com/kazutan/trelloR/blob/master/R/api.R#L71-L107 認証情報がすでにあるかどうかをチェック すでにあるならそれを持ってくる 15 / 27
  6. Trello with R CRUD関数(低水準関数) - GET get_trello_api(base_url, path, verbose =

    FALSE, content = TRUE, query = list(), key = NULL, token = NULL) https://github.com/kazutan/trelloR/blob/master/R/api.R#L136-L166 base_url , path でAPIの行き先を指定 query でクエリパラメータを指定 verboseを出すかどうかを指定可能 content = TRUE で、outputに httr::content() を当てたものを返す key , token はNULL ならローカルのkeyringへ探しに行く batch処理をする場合は、ここにSecretで渡せばOK 16 / 27
  7. Trello with R CRUD関数(低水準関数) - PUT put_trello_api(base_url, path, verbose =

    FALSE, content = TRUE, query = list(), body = NULL, encode = c("multipart", "form", "json", "raw"), key = NULL, token = NULL) https://github.com/kazutan/trelloR/blob/master/R/api.R#L173-L206 get_trello_api() とほぼ一緒 body , encode については ?httr::PUT を参照 17 / 27
  8. Trello with R CRUD関数(低水準関数) - POST post_trello_api(base_url, path, verbose =

    FALSE, content = TRUE, query = list(), body = NULL, encode = c("multipart", "form", "json", "raw"), key = NULL, token = NULL) https://github.com/kazutan/trelloR/blob/master/R/api.R#L213-L246 put_trello_api() とほぼ一緒 18 / 27
  9. Trello with R CRUD関数(低水準関数) - DELETE delete_trello_api(base_url, path, verbose =

    TRUE, key = NULL, token = NULL) https://github.com/kazutan/trelloR/blob/master/R/api.R#L253-L275 get_trello_api() とほぼ一緒 ただし、verbose = TRUE をデフォルトに 19 / 27
  10. Trello with R 高水準関数 - メンバー情報取得 get_member_infos(base_url, member = "me",

    post_path = NULL, query = list(), verbose = FALSE, content = TRUE, key = NULL, token = NULL) https://github.com/kazutan/trelloR/blob/master/R/get.R#L13-L46 メンバー情報を取得する関数 member ユーザー名もしくはメンバーIDを指定 長さ2以上のベクトルで与えた場合、purrr::map でまとめて実行する me は自分自身を指定する意味となる post_path はさらに対象を指定するときに利用 詳細はTrello APIリファレンスを参照 20 / 27
  11. Trello with R 高水準関数 - ボード情報取得 get_board_infos(base_url, board_id, post_path =

    NULL, query = list(), verbose = FALSE, content = TRUE, key = NULL, token = NULL) https://github.com/kazutan/trelloR/blob/master/R/get.R#L56-L89 ボード情報を取得する関数 board_id ボードIDを指定 あとは get_member_infos() と同様 21 / 27
  12. Trello with R 高水準関数 - カード情報取得 get_card_infos(base_url, card_id, post_path =

    NULL, query = list(), verbose = FALSE, content = TRUE, key = NULL, token = NULL) https://github.com/kazutan/trelloR/blob/master/R/get.R#L99-L132 カード情報を取得する関数 card_id カードIDを指定 あとは get_member_infos() と同様 22 / 27
  13. Trello with R 高水準関数 - カード削除 remove_card(base_url, card_id, verbose =

    FALSE, key = NULL, token = NULL) https://github.com/kazutan/trelloR/blob/master/R/delete.R#L12-L40 カードを削除する関数 card_id カードIDを指定 23 / 27
  14. Trello with R 基本的な流れ 1. set_trello_auth_infos() でkey/tokenをセット 2. get_member_infos() でメンバー情報を取得

    1. そのメンバーが所有するboard_idがこの中に含まれる 3. get_board_infos() でボード情報を取得する 1. そのboardが保有するcard情報も持ってくる 2. Trelloのリストやカスタムフィールドのマスタもboardに入っている 3. post_path でlists やcustomFields を指定して実行すればOK 4. get_card_infos() で、カード内のコメントを取得 1. カードのコメントはcardの下にぶら下がっている 5. あとはよしなに整形 1. 結構しんどいので覚悟しとく これでTrello上のデータを取得できた!!!! 24 / 27
  15. Data Science for me 以下は公開できない情報が多いので、説明のみでご了承ください Card検索ツール flexdashboard とShiny を利用 DT

    でカード一覧、クリックするとコメントを表示させる タスク可視化ダッシュボード flexdashboard 上でplotly などにより可視化 分析/予測 時系列予測を実施 起票からcloseするまでの堆積時間の分析 etc... Enjoy! 27 / 27