ヘルスプラネットからデータを取得するパッケージを作った

はじめに

主に俺の健康を管理するために、ヘルスプラネットというタニタの運営するサービスのAPIを叩いてデータを取得するパッケージを作った。
とりあえずinnerscan系の情報

  • 体重 (kg)
  • 体脂肪率 (%)
  • 筋肉量 (kg)
  • 筋肉スコア
  • 内臓脂肪レベル
  • 基礎代謝量 (kcal)
  • 体内年齢 (才)
  • 推定骨量 (kg)

だけが取れるようになっている。
API経由で尿糖・歩数・血圧も取得できるようだが、俺の家にそれ用の計測機器がないので、とりあえず放置。

使い方

パッケージはGithubにしかないので、

install.packages("devtools")
devtools::install_github("teramonagi/healthplanet")

としてインストールする。

そして、ヘルスプラネットの会員登録を済ませて、

  • (会員)ID/パスワード

を手に入れた上で、以下のように使用することができる。

> access_token <- getToken()
> df <- getInnerScan(access_token)
> df
   sex birth_date heght                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.0  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

試しに適当なデータを可視化してみよう。
下記コードで、脂っこいおじさんの体脂肪率を可視化できる・・・が・・・これが俺の実データだとは一言も言っていない。

> library("ggplot2")
> ggplot(df, aes(x=as.Date(date), y=body_fat)) + geom_line(size=2) +  scale_x_date(date_labels="%Y/%m/%d")


コードはこちら

認証周りの処理が一筋縄でいかなかったので、アドホックに動くようにした。