crosshyou

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

HistDataパッケージのDactyl

f:id:cross_hyou:20220226173109j:plain

Photo by Charles Postiaux on Unsplash 

Dactylというの英語の詩の用語らしいです。

ダクティル (詩) - Wikipedia

HistDataパッケージの中のDactylのデータセットは、Edgeworthさんという人がVirgl's Aneidの11巻目の本から始めの75行を調べて分類したデータらしいです。

ますは、HistDataパッケージを呼び出して、Dactylを呼び出します。

f:id:cross_hyou:20220226173632p:plain

str()関数でデータセットの構造を確認しました。60行 x 3列のデータフレームです。

Footというのは4つのレベルのある順序付のファクターで、Linesは15のレベルのある順序付のファクターで、countは整数のデータのようです。

ヘルプでは、xtabs()関数を使っています。

f:id:cross_hyou:20220226173952p:plain

縦軸がFoot, 横軸がLinesでcountの度数を表にしていますね。一番左上はFoot = 1, Lines = 1:5で3となっていますので、countが3、ということですね。確認してみます。

f:id:cross_hyou:20220226174510p:plain

subset関数でFootが1で、Linesが1:5の行だけを表示してみました。確かにcountは3ですね。

ヘルプではanova()関数を次に使っています。

f:id:cross_hyou:20220226174738p:plain

Footによってcountに違いがあるということかな?Footごとのcountの平均値を見てみます。

f:id:cross_hyou:20220226175049p:plain

1は3ぐらいですが、4は1.3ぐらいと半分以下ですね。

ヘルプでは次はplot()関数を使っています。

f:id:cross_hyou:20220226175259p:plain

f:id:cross_hyou:20220226175311p:plain

そして最後はmosaicplot()関数を使っています。

f:id:cross_hyou:20220226175456p:plain

これでおしまいです。以下がコードです。

#
library(HistData)
data(Dactyl)
str(Dactyl)
#
# display the basic table
xtabs(count ~ Foot + Lines, data = Dactyl, subset = NULL)
#
# Foot == 1, Lines == "1:5"
subset(Dactyl, Foot == 1 & Lines == "1:5")
#
# simple two-way anova
dact.lm <- lm(count ~ Foot + Lines, data = Dactyl)
anova(dact.lm)
#
# count average by Foot
with(Dactyl, tapply(count, Foot, mean))
#
# plot the lm-quartet
op <- par(mfrow = c(2, 2))
plot(dact.lm)
par(op)
#
# show table as a simple mosaicplot
mosaicplot(xtabs(count ~ Foot + Lines, data = Dactyl, subset = NULL),
           shade = TRUE)
#