healthplanetパッケージで
体組成データを手に入れて
健康な体も手に入れる
第54回 勉強会@東京(#TokyoR)
@teramonagi
(HOXO-M所属)
誰や?
俺や
• ID: @teramonagi
• 職種:データ分析おじさん
• 業務:採用活動&会議&チャット
言語:/R/Python/Scala/F#/
• 趣味:イケメン&ドラム&メジャーデビュー
3
醜い腹にSay Good-Bye
筋肉(健康)の必要性
4
筋肉(健康)の必要性
5
筋肉(健康)の必要性
6http://hrnabi.com/2015/09/28/9411/
HealthPlanetというサービスがある
• 株式会社タニタの健康管理サービス
7https://www.healthplanet.jp/
Health Planet APIがある
8
https://www.healthplanet.jp/apis/api.html
※三か月分のデータしかとれないというアレ仕様ですが…
healthplanetパッケージ作りました
9https://github.com/teramonagi/healthplanet
要するにこう
10
API via
healthplanet package
Health Planetのサーバ
Bluetooth
Upload
体組成計 スマホアプリ
Rで遊ぶ
みんな大好き高柳さん@リクルート
• 元祖Rおじさん・高柳さんが協力
11
Twitter: @_stakaya 訳著書等
使い方
12
使い方
インストール&ロード
• Githubからのインストール
13
> install.packages("devtools")
> devtools::install_github("teramonagi/healthplanet")
> library(healthplanet)
Tokenの取得
• getToken()でトークンを取得
14
> library("healthplanet")
> #ブラウザ経由での認証が実行される
> access_token <- getToken()
※healthplanet::getTokenWithoutCheck()もあるが・・・
Tokenの取得
15
Tokenの取得
16
getInnerScan()を呼ぶだけ
17
> #getInnerScan関数により体重・体脂肪など、タニタの体重計で測定されたデータが取得できる
> df <- getInnerScan(access_token)
> df
> sex birth_date height date model basal_metabolic_rate body_age body_fat bone_mass
muscle_mass muscle_score visceral_fat_level weight
1 male 1963-03-10 180 2016-03-16 06:49:00 01000099 1685 43 20.9 3.1 56.70 0 9.5 75.60
2 male 1963-03-10 180 2016-03-17 08:04:00 01000099 1705 44 21.4 3.1 57.30 0 10 76.85
3 male 1963-03-10 180 2016-03-18 05:48:00 01000099 1677 44 21.2 3.1 56.45 0 9.5 75.55
4 male 1963-03-10 180 2016-03-19 07:11:00 01000099 1667 44 21.2 3.1 56.15 0 9.5 75.15
5 male 1963-03-10 180 2016-03-20 06:39:00 01000099 1687 43 20.5 3.1 56.80 0 9.5 75.35
6 male 1963-03-10 180 2016-03-21 05:28:00 01000099 1675 43 20.7 3.1 56.40 0 9.5 75.00
18
Enjoy your
healthy life!!
19
.oO(そもそもタニタの体組成計持ってない…)
One more thing…
20
みんな大好き高柳さん@リクルート
• 元祖Rおじさん・高柳さんが協力
21
Twitter: @_stakaya 訳著書等
高柳さんに協力要請&快諾
22
healthplanet::stakaya()
• stakaya()関数、作りました
• あの高柳さんのデータが、即貴方
の手元に!
• しかもリアルタイム更新!
23
healthplanet::stakaya()使用例
24
> library("dygraphs")
> library("xts")
> df <- healthplanet::stakaya()
> dygraph(xts(df$body_fat, df$date)) %>% dyRangeSelector()
お元気で。
25

healthplanetパッケージで 体組成データを手に入れて 健康な体も手に入れる