2013年3月6日水曜日

第一回ゼロからはじめるR言語勉強会開催しました

第一回関西ゼロから始めるR勉強会を開催しました


2013-02-23(土)15:00から第一回関西ゼロからはじめるR勉強会を開催しました。
Agendaは以下の通り。
  1. 自己紹介
  2. なんで最近Rなの? 
  3. Rってなに? 
  4. Rでできること
  5. 必要なもの
  6. どんな人が使うか?

第一回ということでRとは何かから始まり、Rの使いどころを中心に講義を進めました。
勉強会にこられたほとんど全員が初心者の方で勉強会の趣旨にピッタリ当てはまるとてもよい展開でした。

懇親会では、「あんなに質疑の多い勉強会に参加したのは初めてです」
とびっくりされるほど、ほんとにみなさんアクティブで勉強熱心な方たちが多く自分にとってもよい刺激でした。

勉強会風景

使った資料



第1回関西ゼロからはじめるR勉強会(2) from Iida Keisuke

使ったRファイル(1)

# 行、列が一行でできあがる
cols<-cbind(1,2,3) # 行生成だーん
rows<-rbind(1,2,3) # 列生成だーん
mt.c<-matrix(1:3, nrow=3, ncol=3) # 行列だーん
mt.r<-matrix(1:3, nrow=3, ncol=3, byrow=T)
r_trans<-t (mt.r) # 転置行列
df<-data.frame(ID=c(1:3), name=c('iida','matsu','ishi'))

# 乱数発生
rd.norm1<-rnorm(1000,mean=1,sd=0.5) #平均1 標準偏差0.5の正規乱数を1000個作る
rd.norm2<-rnorm(1000,mean=1,sd=0.5) #平均1 標準偏差0.5の正規乱数を1000個作る
# plot(rd.norm1, rd.norm2)
print(rd.norm1)
print(rd.norm2)

# グラフが簡単
x<-c(1,2,3,4,5)
barplot(x, horiz=TRUE) # 棒グラフ
mt.x<-matrix(1:12, nrow=4, ncol=3) # Matrix生成
barplot(mt.x) # 積み上げグラフ
bar.col<-c("blue", "green", "red", "cyan") # グラフの色設定
barplot( mt.x, col=bar.col) # 色分けグラフ生成

pie(x) # 円グラフ
rn.x <- rnorm(30,-20,20) # 正規分布に従う乱数発生
plot(rn.x,type="l") # 折れ線グラフ

# 散布図
spray.x <- c(rnorm(10000, 5, 2))
spray.y <- c(rnorm(10000, 100, 20))
spray.col<-densCols(spray.x, spray.y, colramp=colorRampPalette(c("white", "yellow", "orange", "red")))
plot(spray.x, spray.y, col = spray.col)


使ったRファイル(2)

ex.id<-c(1:1000)
ex.man_en<-round(rnorm(1000,mean=40,sd=5), 0) # 英語テスト結果を作成
ex.man_ma<-round(rnorm(1000,mean=70,sd=5), 0) # 数学テスト結果を作成
ex.man_ja<-round(rnorm(1000,mean=20,sd=5), 0) # 国語テスト結果を作成

ex.wo_en<-round(rnorm(1000,mean=75,sd=5), 0) # 英語テスト結果を作成
ex.wo_ma<-round(rnorm(1000,mean=30,sd=5), 0) # 数学テスト結果を作成
ex.wo_ja<-round(rnorm(1000,mean=80,sd=5), 0) # 国語テスト結果を作成


# データフレーム生成

df.dat<-data.frame(
ex.id
,ex.man_en
,ex.man_ma
,ex.man_ja
,ex.wo_en
,ex.wo_ma
,ex.wo_ja
)
# データフレームのカラム名変換
colnames(df.dat)<-c("ID"
,"MAN_Eng"
,"MAN_Math"
,"MAN_Ja"
,"WO_Eng"
,"WO_Math"
,"WO_Ja"
)
# データのフィルタリング
df.new<-subset(df.dat,
0 <= MAN_Eng & MAN_Eng <= 100
& 0 <= MAN_Math & MAN_Math <= 100
& 0 <= MAN_Ja & MAN_Ja <= 100
& 0 <= WO_Eng & WO_Eng <= 100
& 0 <= WO_Math & WO_Math <= 100
& 0 <= WO_Ja & WO_Ja <= 100
)

# ===== 高水準作図関数
# 棒グラフ
barplot(df.new$MAN_Math)

# ヒストグラム
hist(df.new$MAN_Eng,xlim=c(0,100),axes=F, ann=F, col="blue")
par(new=T)
hist(df.new$MAN_Math,xlim=c(0,100),col="red")

# 散布図(重ねあわせ)
plot(df.new$MAN_Math,df.new$MAN_Eng,xlim=c(0,100),ylim=c(0,100),axes=F, ann=F, col="blue")
par(new=T)
plot(df.new$WO_Math,df.new$WO_Eng,xlim=c(0,100),ylim=c(0,100),ann=F,col="red")

# ===== 低水準作図関数
# タイトル挿入
title(main="Test Results", col.main="red",
sub="Men & Women", col.sub="green",
xlab="Math", ylab="English")
# ライン挿入
abline(v=30, h=75, col="red")
abline(v=70, h=40, col="blue")

# ラベル
legend(
"topright" # 位置
,c("Man","Woman") # 名前
,col = c("blue","red" ) # 色
,lwd=1 # 表示種別
,cex=0.8 # 大きさ
,bg='white' # 背景色

)

# テキスト入力
text(x=50, y=100, label="Woman", cex=0.8, col="red", font=3)
text(x=90, y=65, label="Man", cex=0.8, col="blue",font=4)

# 矢印
arrows(30, 75, 50, 100, col="red",code=2, lty=3)
arrows(70, 40, 90, 65, col="blue",code=2, lty=4)


0 件のコメント:

コメントを投稿