忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

gplotパッケージplotmeans関数を使ってみよう
こちらにも解説がある

もしくはpsychパッケージのerror.bars.by関数

凡例表示を覚えないとどうしようもないが

PR
こっちとあわせて使おう

# split関数でデータフレームを分割

sp <- split(iris, iris$Species)
# summaryで内容がわかる
summary(sp)

# データフレームを3つつくる
iris.set <- sp$setosa
iris.ve <- sp$versicolor
iris.vi <- sp$virginica

# psychパッケージのmulti.hist関数でそれぞれの群のヒストグラムを描く
win.graph()
multi.hist(iris.set)
# 自分の定義したfrq関数では frq(1:5, iris.set)
win.graph() #別のウィンドウに描く
multi.hist(iris.ve)
win.graph() #別のウィンドウに描く
multi.hist(iris.vi)

multi.hist関数の引数
もメモしておこう
(あまり汎用性はない。こっちで作ってもいいかも…)
Usage
multi.hist(x,nrow=NULL, ncol=NULL,density=TRUE,main="Histogram, Density, and Normal Fit")

Arguments
x     行列かデータフレーム
nrow     作図デバイスの行数
ncol     作図デバイスの列数
density     正規分布曲線と分布
main     グラフのタイトル


### subset関数で分割してもよし
# 群の名前を調べておく。ついでに群の数も調べておく
grpname <- levels(iris$Species)
length(levels(iris$Species))
#subset関数で群を分けたデータフレームをつくる
iris.se <- subset(iris, Species == grpname[1]).


# クロス集計表をしこたまつくる
for(i in 2:50){
cat("\n",colnames(dat[i])," x ", colnames(dat[1]),"\n") # 集計に使った変数名を出力
print(xtabs(~ dat[,i] + dat[,1], dat))
}

# 合計欄つきでしこたまつくる
for(i in 2:50){
cat("\n",colnames(dat[i])," x ", colnames(dat[1]),"\n")
print(addmargins(xtabs(~ dat[,i] + dat[,1], dat)))
}

# 列パーセントのクロス集計をしこたまつくる
for(i in 2:50){
cat("\n",colnames(dat[i])," x ", colnames(dat[1]),"\n")
xn <- addmargins(xtabs(~ dat[,i] + dat[,1], dat))
print(round(t(t(xn)/xn[nrow(xn),]*100),2))
}

# 行パーセントの以下略
for(i in 2:50){
cat("\n",colnames(dat[i])," x ", colnames(dat[1]),"\n")
xn <- addmargins(xtabs(~ dat[,i] + dat[,1], dat))
print(round((xn/xn[, ncol(xn)]*100),2))
}

# クロス集計、度数、パーセント、カイ二乗検定、Fisherの正確確率検定。
# cat関数で適当にセパレータ ("===")を入れる。改行は\n
## Fisherのはメモリが足りなくてできないことがある
for(i in 2:50){
cat("\n\n========================\n")
cat(colnames(dat[i])," x ", colnames(dat[1]),"\n")
x <- xtabs(~ dat[,i]+ dat[,1], dat)
cat("\n===\n")
print(ftable(addmargins(x)))
xn <- ftable(addmargins(x))
cat("\n===\n")
print(round(t(t(xn)/xn[nrow(xn),]*100),2))
cat("\n===\n")
print(round((xn/xn[, ncol(xn)]*100),2))
(crr <- chisq.test(x))
cat("\n\nCHISQ\n")
(cr <- my.chisq.test(x))
print(cr)
cat("\n===\n")
cat("EXPECTED\n")
print(crr$expected)
cat("\n===\n")
summary(cr)
cat("\n\nMYFISHER\n")
fx <- my.fisher(x)
cat("\nMYFISHER$Pearson")
print(fx$p.Pearson)
cat("\nMYFISHER$Fisher")
print(fx$p.Fisher)
cat("\n========================\n")
}

# 明朝。以下三つは全然違いがわからんが…
family = "Japan1"
family = "Japan1HeiMin"
family = "Japan1Ryumin"

# ゴシック
family = "Japan1GothicBBB"

# parやpdfなんかで使おう
par(family = "Japan1GothicBBB")
pdf("ファイル名.pdf", family = "Japan1GothicBBB")
# pdfで保存したとき、日本語フォントが表示できるようにする
par(family = "Japan1GothicBBB")


pdf("ファイル名.pdf", family = "Japan1GothicBBB") #pdfファイルの指定と日本語フォント指定
## 描画関数
dev.off() #作図デバイスの終了
プロフィール
HN:
tao
HP:
性別:
非公開
職業:
会社員
趣味:
アウトドア、自転車、ジョギング、英語学習
自己紹介:
・千葉在住のサラリーマンです。データ分析っぽいことが仕事。
・今年英検1級取得。今はTOEIC高得点を目指して勉強中。
・興味のあることは野球、アウトドア、英語学習、統計、プログラミング、PC関係などなど。
ブログ内検索
freead
順位表
プロ野球データFreak
セリーグ順位表
パリーグ順位表