Closed3

iPhone のヘルスケアアプリで記録したワクチン接種後の体温をRで可視化する

畳屋民也畳屋民也

やったこと

コロナワクチン接種後、iPhone に default で入っているアプリ「ヘルスケア」で体温を記録し経過を辿っていた。

https://www.apple.com/jp/ios/health/

しかし、「ヘルスケア」では一度に表示できる期間が自由に指定できず、また、接種時刻や解熱剤を飲んだタイミングなどのアノテーションもしたかったので、Rでデータを読み込んで可視化してみることにした。

結果

畳屋民也畳屋民也

「ヘルスケア」から出力した XML をどう R で読み込むか?

出力された XML には「ヘルスケア」アプリ内の全データが含まれていた。
この中から体温データだけ取り出して data frame に収める必要があった。

library(xml2)
library(XML)

health_data <- read_xml("data/export.xml")
parsed_health_data <- xmlParse(health_data)
temperature_nodeset <- getNodeSet(parsed_health_data, "//Record[@type='HKQuantityTypeIdentifierBodyTemperature']")

start_date <- sapply(temperature_nodeset, function(x) xmlGetAttr(x, "startDate"))
value <- sapply(temperature_nodeset, function(x) xmlGetAttr(x, "value"))

df_temperature <- data.frame(time=ymd_hms(start_date), temperature=as.numeric(value))

参考

https://appsilon.com/r-xml/
https://fits.hatenablog.com/entry/2013/09/23/002707

このスクラップは2024/02/04にクローズされました