goo blog サービス終了のお知らせ 

インターネット巡回生活

ほぼほぼ、書きなぐり雑記かも

Rの棒グラフサンプル

2013-05-25 | 日常
##Rのファイル - 新しいスクリプト作成 でこの文章すべてをはりつけてみてください
## そして、ドラックで範囲指定して、右クリックで 「カーソル行または選択中の行を実行」
##
##上段が男女、下段がはい、いいえ
dt0<-matrix(c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1),ncol=2)
#最初の5行だけ表示
head(dt0)
colnames(dt0) <-c("sex","yesno")
dt <- table(dt0[,2],dt0[,1])
colnames(dt) <-c("男","女")
rownames(dt) <-c("関心ある","関心無い")
dt
#初心者向けの教科書に載っていて、手計算でおこなう場合の結果はこの数値になるとおもう(X-squared = 4.7902)
#p-value = 0.02862 <0.05なので、有意水準5%の検定では男女に差がある
chisq.test(dt,correct=F)
#2×2分割表のイエーツの補正というのを入れる(デフォルトで有効になっているでは、5%を超えてしまう、、まあ、この辺はどちらを採用するのでしょうね)
chisq.test(dt,correct=T)
##グラフを2つ描く
par(mfrow=c(1, 2))
#一つ目は実数グラフ
ichi <- rev(barplot(dt,main="ダイエットへの関心",xlab="性別",ylab="アンケート人数(人)",legend.text = rownames(dt),args.legend = list(x=2.5, y=15)))
text(ichi, (apply(dt, 2, cumsum) - dt /2), (dt), cex=0.8)

##2つめは構成比グラフ
dt2 <- dt
dt2[,1] <- (dt[,1] / sum(dt[,1]))*100
dt2[,2] <- (dt[,2] / sum(dt[,2])) * 100
ichi2 <- (barplot(dt2,legend = rownames(dt2),main="ダイエットへの関心構成比",xlab="性別",ylab="構成比率",xlim = c(0, ncol(dt2)+2),
col=c(4,2),args.legend = list(x=5.0, y=100.0)))

##ここがイマイチなんだよなあ、、
text(c(ichi2[1],ichi2[1],ichi2[2],ichi2[2]), (apply(dt2, 2, cumsum) - dt2 /2), (dt2), cex=0.8,col="white")
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

サンプル作成

2013-05-20 | 日常
cnt <-5000
ym <-c(201204:201212,201301:201303)
CustID <-(1001:1030)
gaku <- trunc(rnorm(cnt, mean = 300, sd = 100)) * 10
df <- data.frame(sample(ym,cnt,replace = TRUE)
,sample(CustID,cnt,replace = TRUE ,prob = rep(1:10,3))
,sample(gaku,cnt,replace = TRUE))
colnames(df) <- c("ym","CustID","gaku")
table (df$CustID)
gaku[which(gaku<=0)]<-1

hist(df$gaku)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする