Hu_Tiang_TODAのホームページ


日本語ホームページに戻る

”R”を使って自分の血圧測定結果を統計解析してみました。

”R”はオープンソースの統計ソフトであり、簡単なプログラムで統計処理をすることができます。
次のようなプログラムを使って自分の血圧測定結果を統計解析してみました。
主治医から朝の血圧と夜の血圧でどちらがより高いのかを知りたいといわれたので、同じ画面に重ねて表現し比べられるするようにしました。
ここに紹介したように簡単なプログラムで統計的な処理やグラフを書くことができます。自分の健康管理に”R”を使ってみませんか。
同じプログラムを使って環境放射能測定データも扱えると思い、挑戦してみようと思っています。

いろいろな"R"の解説書を見てもなかなかわからないことがありました。
”R”を使うとこのようにいろいろなことができるという解説はあるのですが、自分のデータを自分のパソコンでどのように扱うかが書いてないのです。
北大路書房 村井潤一郎著『はじめての R ごく初歩の操作から統計解析の導入まで』には私が知りたいことが書いてありました。
特に自分のパソコンでファイルのパスを間違いなく探すのに困っていたのです。

結果は個人情報そのものですので私に連絡することなく利用はしないで下さい。
ファイルの扱いは慎重にお願いします。自分のデータを使って試していただきたいと思います。
対象とするデータを変えれば、いろいろなものの統計処理ができます。

”R”のプログラム

# 朝と夜を比較 主治医に朝と夜の血圧の違いが分かると対処しやすいと言われてプログラムを作ってみました。
# 夜は風呂に入った後で測定していることが反映していることが分かります。今後は風呂に入る前に測定をするように変更します。

# データはF:ドライブにcsvファイルとして保存してあるものを読み込む。作業領域もF:ドライブにした。それはCドライブが複雑にならな複雑にならないようにしたいからです。 
ketsuatsu_asa <- read.csv("F:/R-3.6.2/ketsuatsu_sokutei/2022_08_ketsuatsu_asa.csv")
ketsuatsu_yoru <- read.csv("F:/R-3.6.2/ketsuatsu_sokutei/2022_08_ketsuatsu_yoru.csv")
R Markdownでレポートも作りました。このレポートのすごいところはレポートからプログラムを実行できるとのことです。
再現性が高いということはうれしいですね。まだ改良するところはたくさんありますが、実際に使ったプログラムの欲しい方は連絡してください。
ここに紹介してからも少しづつ改良をしているところもあります。

R Markdownについての参考書は次のものがとても分かりやすかったです。
これからのレポートはRとRStudioで再現可能なものに挑戦しましょう。
『RユーザーのためのRStudio[実践]入門』松村・湯谷・紀ノ定・前田著 技術評論社
その他RおよびRStudio関連の書籍を紹介します。

血圧の朝と夜の変動を比較する

# 朝と夜の血圧の重ねてプロットする
plot(ketsuatsu_asa$saikou,,xlab="",ylab="血圧、脈拍",ylim=c(50,160),main="2022年08月朝と夜の比較",type="o",lty=1,lwd=2,col='red',pch=16);par(new=T)
plot(ketsuatsu_yoru$saikou,xlab="",ylab="",ylim=c(50,160),main="",type="o",lty=1,lwd=2,col='purple',pch=16);par(new=T)
plot(ketsuatsu_asa$saitei,xlab="",ylab="",ylim=c(50,160),type="o",lty=1,lwd=2,col='green',pch=18);par(new=T) # 画面に重ねて表示
plot(ketsuatsu_yoru$saitei,xlab="",ylab="",ylim=c(50,160),type="o",lty=1,lwd=2,col='skyblue',pch=18);par(new=T)
plot(ketsuatsu_asa$myakuhaku,xlab="",ylab="",ylim=c(50,160),type="o",col='orange',lty=1,lwd=1,pch=24);par(new=T)
plot(ketsuatsu_yoru$myakuhaku,xlab="",ylab="",ylim=c(50,160),type="o",col='violet',lty=1,lwd=1,pch=25);par(new=T)

# 凡例表示
names_asa<-paste("朝血圧・脈拍",c(1:3)); names_yoru<-paste("夜血圧・脈拍",c(1:3))
legend(5,160,names_asa,col=c('red','green','orange'),pch=c(16,18,24),lwd=2,merge=1) # 凡例
legend(5,110,names_yoru,col=c('purple','skyblue','violet'),pch=c(16,18,25),lwd=2,merge=1)

# 画面分割
par(mfrow=c(1,2))

血圧の朝と夜の変動を比較する

# 最高血圧と最低血圧の表示 最高血圧135以上×表示 最低血圧85以上×表示としてプロットする
# 今回グラフの中の中に血圧の平均値★標準偏差を線分で表してみました。
# 分布図も線で結んでみると血圧変動の様子も見ることができます。
plot(ketsuatsu_asa$saitei,ketsuatsu_asa$saikou,ylim=c(100,160),main="2022年08月朝の血圧",xlab="最低血圧", ylab="最高血圧",type="p",lty=1,col=1,pch=ifelse(ketsuatsu_asa$saikou>135|ketsuatsu_asa$saitei>85,4,18))
plot(ketsuatsu_yoru$saitei,ketsuatsu_yoru$saikou,ylim=c(100,160),main="2022年08月夜の血圧",xlab="最低血圧", ylab="最高血圧",type="p",lty=3,col=1,pch=ifelse(ketsuatsu_yoru$saikou<135|ketsuatsu_yoru$saitei<85,4,18))

日本語ホームページに戻る