データのお砂場(46) R言語、beavers、ビーバー2匹の体温の測定とな

Joseph Halfmoon

R言語所蔵のサンプルデータセットを、ABC順(大文字先)で端から眺めております。前回はオーストラリアの人口でしたが、今回はビーバー2匹の体温測定です。「サンプル」なので致し方ないですが、雑多なものの寄せ集め感ハンパないです。まあRでの処理のやり方を学ぶためのデータと割り切れば良いんでしょうが。

※「データのお砂場」投稿順Indexはこちら

今回のデータセットの解説ページが以下に。

Body Temperature Series of Two Beavers

R上のデータセット一覧の表示では、以下のように2項目であるように見えます。しかし、2つは一体化していて beavers という名を冠したデータセットに見えます。dataset

データ自体は、ビーバー(北米の川に切り倒した木でダムを作る動物だと思います)4頭(全てメスだそうで)について、10分おきにその体温を記録した「膨大な」データの一部みたいです。

どういう理由でその一部をどう切り出したのかは不明ですが、2つあるデータは、それぞれ1990年の特定の約1日ほどの期間の特定の1頭のデータであるようです。

    • beaver1、December 12-13
    • beaver2、November 3-4

日付けも違えば個体も違うと。当然、天気などの気象条件、水温なども違うんじゃないかと思いますが、そういう外的要因は一切書いてないです。あくまで1頭の体温の変化データ。

まずは生データ

個別に beaver1 をロードしようとしても、上記に述べた理由でうまく行きません。以下のように、beaversとすると beaver1とbeaver2が一度にロードできます。どちらもフツーのdata.frameです。rawData0

データフレームの様子が以下に。

rawData1

day は、1990年の年頭からの日数みたいです。timeは、840とあったら08:40の意味です。tempは体温で摂氏。activは、「隠れ家」(巣)から出ていたら1、そうでなければ0となるようです。

とりあえず、データの素性を見るために両方のデータのsummary調べてみました。こんな感じ。rawData2

 

処理例に従ってプロット

別な個体の別な日にちのデータなので、2つを比較するというのもなんだかな~どういう処理すべきなのかと思ったです。しかし、今回は上記の解説ページに処理例が記されていました。

2例を並べて時間に対してプロット

すれば良いみたいです。まずはY軸方向の上下リミットを計算。step0

プロット関数については、時間を変換したりメンドイ処理があるので、スクリプトファイルにしておいてから、実行してみました。以下はスクリプトエディタ画面です。beaverScript

上記のプロット用のスクリプトで関数定義した後、2つのデータに適用して並べてプロットすると。step1

結果のプロットが以下に。BeaverPlot

beaver1の方は12月中旬です。beaver2は11月初旬。beaver2の方が活発に外へでていて(赤丸ついているのが外に出ているところ)そのときの体温も高いです。beaver1の方は稀にしか外に出ないし、体温も低いです。12月中旬ともなると寒かった? まあグラフの書き方のお勉強にはなるけれど、もう少しビーバーさんの生態というか、知れると面白かったな。

データのお砂場(45) R言語、austres、オーストラリアの人口、4半期毎 へ戻る

データのお砂場(47) R言語、cars、自動車の制動距離?いか停止距離とな へ進む