crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

RのHistDataパッケージのCavendish

f:id:cross_hyou:20220129170842j:plain

Photo by Marina Kraus on Unsplash

RのHIstDataパッケージのCavendishのデータは、イギリスの科学者のヘンリー・キャベンディッシュの1798年に行った地球の密度の測定に関する実験のデータです。

Wikipediaによると、

ヘンリー・キャヴェンディッシュ - Wikipedia

1797から1798年にかけて、いわゆる「キャヴェンディッシュの実験」を行い、地球の比重を測定し、その結果を1798年に発表した。後年の科学者は、この実験の結果と万有引力の法則から万有引力定数が算出できることに気付いた。キャヴェンディッシュ自身は万有引力定数を算出したわけではないが、今日ではこの実験は「地球の密度を測定した」というよりは「万有引力定数を測定した」と捉えられていることが多い。」

とのことです。

それではヘルプに出ているコードを実践していきます。

f:id:cross_hyou:20220129171627p:plain

density, density2, density3という3つの変数があって、それぞれ同じような値の変数ですね。

次のコードは、

f:id:cross_hyou:20220129171904p:plain

f:id:cross_hyou:20220129171915p:plain

boxplot()関数で箱ひげ図を描き、abline()関数で水平線を描きました。

5.517というのは意味のある値だと思いますが、よくわからないです。後日調べて更新します。

次のコードはtrimmed meanを求めています。

f:id:cross_hyou:20220129172225p:plain

sapply関数で3つの変数のtrimmed meanをいっぺんに計算しています。

一つ一つ計算するなら、

f:id:cross_hyou:20220129172552p:plain

こんな感じでしょうか。

そして次のコードは、

f:id:cross_hyou:20220129172732p:plain

f:id:cross_hyou:20220129172749p:plain

です。重力定数Gを計算するファンクションを作成して、Dという引数にCavendishのデータを代入して箱ひげ図を描いています。

以下がヘルプにあるコードです。

library(HistData)

data(Cavendish)
summary(Cavendish)
boxplot(Cavendish, ylab='Density', xlab='Data set')
abline(h=5.517, col="red", lwd=2)
# trimmed means
sapply(Cavendish, mean, trim=.1, na.rm=TRUE)
# express in terms of G
G <- function(D, g=9.806, R=6371) 3*g / (4 * pi * R * D)
boxplot(10^5 * G(Cavendish), ylab='~ Gravitational constant (G)', xlab='Data set')
abline(h=10^5 * G(5.517), col="red", lwd=2)