Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rに管理されてみる
Search
Kazuhiro Maeda
July 23, 2022
Programming
510
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rに管理されてみる
Tokyo.R #100でのプレゼン資料です。
イベントURL:
https://tokyor.connpass.com/event/253867/
Kazuhiro Maeda
July 23, 2022
More Decks by Kazuhiro Maeda
See All by Kazuhiro Maeda
Will Positron accelerate us? (update)
kazutan
1
200
積もってく会議メモをどうにかしたかった
kazutan
0
300
分析システムにR Markdownを組み込む
kazutan
0
580
私とR、そしてキャリア
kazutan
2
4k
tubeplayR v1.0への道
kazutan
2
260
R, Git, Droneを使ってconfluenceへのKPI予測レポートを自動化した話
kazutan
2
700
週次KPIレポートをconfluenceへUpするためにやったこと
kazutan
1
1.6k
xaringanパッケージの内容をちょっとだけ
kazutan
0
1.1k
最近のRパッケージ開発事情
kazutan
0
410
Other Decks in Programming
See All in Programming
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
140
wkhtmltopdfの次どうするか問題2026
willnet
1
100
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
140
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
240
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
390
Jetpack Compose メカニズム
skydoves
0
420
Java 27新機能 / Java 27 new features
kishida
2
140
AHC070解法紹介
eijirou
0
120
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
110
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
680
What We Talk About When We Talk About XP
m_seki
2
630
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
260
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Making the Leap to Tech Lead
cromwellryan
135
10k
Thoughts on Productivity
jonyablonski
76
5.4k
KATA
mclloyd
PRO
35
15k
Google's AI Overviews - The New Search
badams
0
1.6k
Site-Speed That Sticks
csswizardry
13
1.5k
Writing Fast Ruby
sferik
630
63k
The Curse of the Amulet
leimatthew05
3
14k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Between Models and Reality
mayunak
4
460
Transcript
Rに管理されてみる Tokyo.R #100 kazutan(前田 和寛) 2022-07-23
はじめに 2 / 27
はじめに 自己紹介 名前/アカウント 前田和寛(Maeda Kazuhiro) @kazutan Twitter GitHub Qiita, r-wakalang,
etc... 3 / 27
はじめに 書籍 4 / 27
はじめに 所属 LINE Fukuoka株式会社 Data Scientist DataLabs Data Science Team
- Manager Data Engineering & Solution Team - Manager LINE株式会社 CDO Office 5 / 27
Task Management 6 / 27
Task Management タスクを管理/運用して業務を遂行できるようにすること 私が大切にしていること タスクはかならずticket/cardにする 小さくても、終わった後でも必ずする Close/Goal基準を明確化すること 1 ticketに1つのClose/Goal基準 進行状況を確認できること
管理できなくなる 作業ログを残せること 後にtask-framework structuringで必要 ...結局は基本的なことが大事 7 / 27
Task Management Task Managementは”めんどくさい” なので、いろいろなツールがある JIRA Trello Confluence (!?) Slack(!?!?)
Excel(!?!!?!!?!?!?!?!?!?!) etc… 私は複数のプロジェクトにassign プロジェクトでツールが異なる めんどくさい 自分用にTrelloを使う(2021/04~) 8 / 27
Task Management Trello Kanbanスタイルのタスク管理ツール 詳細は公式サイトを参照 https://trello.com/ 9 / 27
Task Management Trelloのめんどうなところ アーカイブが使いづらい 検索しづらい 削除がしづらい Archived -> removeしかできない Reportが弱い
Textベース 分析できない 業務の傾向などが分析できない ...よろしい、ならばRだ 10 / 27
Trello with R 11 / 27
TrelloにはREST APIが提供されている https://developer.atlassian.com/cloud/trello/rest/ Trelloのほぼ全ての要素が扱えそう 各種APIについては今回の発表で は省略 ドキュメントがしっかりしている key/tokenがあれば利用可能 API Call制限などはそれぞれで確
認してください 管理者により制限されている場合 があります APIがあるならRでできるじゃないか!! Trello with R Trello API 12 / 27
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
Trello with R いろいろ関数にしよう ほしいのは以下の通り 簡単に認証情報を保持できるもの(ベタ打ちしない) CURDの基本的な関数(低水準関数)はほしい 用途に合わせて使える関数(高水準関数)もほしい batch処理を仮想環境で実行しやすいようにしたい とりあえず作ってみよう
使っているコードは以下のRepositoryにあります: https://github.com/kazutan/trelloR 14 / 27
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
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
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
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
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
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
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
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
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
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
Trello with R パッケージ化しないの? そのつもりだった 勢いで関数まで作ったけど、あとからパッケージを見つけた https://github.com/jchrom/trelloR しかも同名だった… ただ、設計コンセプトが違ったので、自分の関数をそのまま使ってる 私がおいてるRepositoryはインストールできるけど、推奨はしません
自分好みの関数を作る、これもまたよし 25 / 27
Data Science for me 26 / 27
Data Science for me 以下は公開できない情報が多いので、説明のみでご了承ください Card検索ツール flexdashboard とShiny を利用 DT
でカード一覧、クリックするとコメントを表示させる タスク可視化ダッシュボード flexdashboard 上でplotly などにより可視化 分析/予測 時系列予測を実施 起票からcloseするまでの堆積時間の分析 etc... Enjoy! 27 / 27