"R is a language and environment for statistical computing and graphics."
[[http://www.r-project.org/>http://www.r-project.org/]]

#contents

*覚え書き [#s4e6e9ae]
Rについての主な参考書~
-舟尾・高浪『データ解析環境「R」』(工学社、平成17年)
-U.リゲス(石田訳)『Rの基礎とプログラミング技法』(シュプリンガー・ジャパン、平成18年)
-岡田監訳『Rによる医療統計学』(丸善、平成19年)
-Braun and Murdock, '''A First Course in Statistical Programming with R''', Cambridge, 2007.



**SPSSとの併用 [#wf00ba01]
-Rで作成したデータをSPSSで使うことができる。~
write.table(Object, file="filename.txt", sep="\t", row.names=F)~
-SPSSのデータファイルをRで読み込むこともできる(パッケージ「foreign」が必要)。~
read.spss("filename.sav", to.data.frame = TRUE) 

 同じデータで、RとSPSSの結果を比べることができる。
状況によってRとSPSSを使い分けることができる。

**Excelとのデータのやり取り [#r7c8dc2b]
:read.csv|CSV形式のデータを読み込む。read.csv("filename.csv")
:read.delim("clipboard", header=F)|Excelからのデータの貼り付け。ウィンドウズのクリップボード経由。「header=T」でもよい。
:read.table("filename.csv", header=T, sep=",")|CSV形式。read.csv("filename.csv")と同じ結果。
:read.table("filename.txt", header=T, sep="\t")|タブ区切りのデータの読み込み。

:write.table(object, file="filename.txt", sep="\t", row.names=F)|タブ区切り。sepを省略するとスペース区切り。Excelで読み込むことが可能。
:write.table(object, file="filename.csv", sep=",", row.names=F)|Excelで読み込みやすいCSV形式。
:write.csv(object,"filename.csv")|


**LaTeXで図を表示するためにEPS形式に変換 [#e42317ac]
-コマンドによる、PSファイルへの出力
#setlinebreak(on)

x<- 1:10
plot(x)
dev.copy(postscript, "1.ps",width=6.65, height=6.65, horizontal=F)
dev.off()

上記のようにすると、EPSファイルのバウンディングボックスの設定が下記のようになる。
 %%BoundingBox: 58 182 537 660

**行の合併 [#z79ae384]
||[,1]|[,2]|[,3]|[,4]|
|[1,]|RIGHT:1|RIGHT:4|RIGHT:7|RIGHT:10|
|[2,]|RIGHT:2|RIGHT:5|RIGHT:8|RIGHT:11|
|[3,]|RIGHT:3|RIGHT:6|RIGHT:9|RIGHT:12|

a<-matrix(1:12,3)    3は行数の指定(nrow=3)
b<-a[2,]+a[,3]      2行と3行の加算
rbind(a,b) >- c      4行目の付加
c[c(1,4),] >- d       2,3行目の削除
rownames(d)[1] <- "a"    1行目の行ラベルの指定。(データエディタで変更してもよい。fix(d))


||[,1]|[,2]|[,3]|[,4]|
|a|RIGHT:1|RIGHT:4|RIGHT:7|RIGHT:10|
|b|RIGHT:5|RIGHT:11|RIGHT:17|RIGHT:23|



**コードの変更と変数の追加 [#ya90ca6a]
コードの変更(再コーディング)

var1  <- c(1, 2, 3, 4, 5, 1, 3, 5, 5)
fvar1 <- factor(var1, levels=1:5)
levels(fvar1) <- factor(c(1, 1, 1, 2, 3)[fvar1]

1→1
2→1
3→1
4→2
5→3

変数の追加(コード変更した変数のデータフレームへの)
data02 <- transform(data01, V1b=fvar1)


**N人の中からn人を無作為に選ぶ [#p2bd05c4]
 floor(runif(n,min=0,max=1)*N)+1


**比率の差の検定 [#r23c7df2]
|278|800|
|242|745|

prop.test(c(278,242),c(800,745), correct=F, alternative="greater")

**クロス表の検定(分割表における独立性の検定) [#ne66eb99]
|24|12|RIGHT:9|
|12|18|15|

a <- matrix(c(24,12,9,12,18,15), ncol=3, byrow=T) 

chisq.test(a)

**単純集計結果の一括表示 [#e54517fb]

> for ( i in 1:44 )  {cat("***");cat(colnames(fu06)[i]);cat("***");print(table(fu06[,i]));cat("\n")}

**棒グラフの作成 [#fe2125dd]
||>|>|学科|
|学年|1|2|3|
|   1|RIGHT: 43|RIGHT: 57|RIGHT: 20|
|   2|RIGHT:  2|RIGHT:  0|RIGHT:  3|
|   3|RIGHT:  1|RIGHT:  0|RIGHT:  0|



#単純集計(実数)
barplot(margin.table(t1a,2),col=topo.colors(3),xlab="学科",names=c("社会","社会福祉","その他"))

#単純集計(パーセント)
barplot(100*margin.table(t1a,2)/sum(margin.table(t1a,2)),col=topo.colors(3),xlab="学科",names=c("社会","社会福祉","その他"),ylim=c(0,50))

#クロス集計
barplot(100*prop.table(t1a,2),xlab="学科",col=topo.colors(3),legend.text=rownames(t1a),xlim=c(0,5))

#クロス集計(beside=T)
barplot(100*prop.table(t1a,2),xlab="学科",col=topo.colors(3),legend.text=rownames(t1a),beside=T)

#クロス集計(積み重ね)
barplot(100*prop.table(t1a,2),col=topo.colors(3),xlab="学科",names=c("社会","社会福祉","その他"),legend.text=rownames(t1a),xlim=c(0,4))

#クロス集計(beside=T)
barplot(100*prop.table(t1a,2),col=topo.colors(3),xlab="学科",names=c("社会","社会福祉","その他"),legend.text=rownames(t1a),beside=T)




**グラフの作成 [#r8fddf14]

#shokugyoubetsu.RData

barplot(shokugyou$a,names=rownames(shokugyou),ylim=c(0,1000),col=topo.colors(5))
barplot(shokugyou$b,names=rownames(shokugyou),ylim=c(0,300),col=topo.colors(5))
barplot(shokugyou$c,names=rownames(shokugyou),ylim=c(0,1500),col=topo.colors(5))
barplot(shokugyou$j,names=rownames(shokugyou),ylim=c(0,500),col=topo.colors(5))


x <- shokugyou[c(2,7,12,17),-1]
x2 <- t(x)
barplot(x2[,4],ylim=c(0,1600),col=topo.colors(5))
barplot(100*x2[,4]/sum(x2[,4]),ylim=c(0,30),col=topo.colors(5))
x3 <- 100*prop.table(x2,2)
barplot(x3,col=topo.colors(5),legend.text=rownames(x3),xlim=c(0,6))


y07 <- shokugyou[19,-1]
ty07 <- t(y07)
barplot(ty07[,1],ylim=c(0,1600),col=topo.colors(5))
barplot(100*ty07[,1]/sum(ty07[,1]),ylim=c(0,25),col=topo.colors(5))


|| year|   a|   b|    c|   d|   e|   f|   g| h|    i|   j|
|1|  1989| 665| 235| 1101| 937| 519| 459| 230| 3| 1687| 263|
|2|  1990| 690| 239| 1157| 940| 535| 448| 233| 3| 1702| 274|
||(省略)|||||||||||
|18| 2006| 937| 185| 1260| 881| 772| 269| 206| 3| 1432| 370|
|19| 2007| 938| 173| 1262| 888| 787| 269| 205| 3| 1441| 376|


**データ等の保存・読み込み [#mb150f0a]
-dump() オブジェクトの保存
-source()
-sink 結果のファイルへの保存
-save.image イメージファイル(作業スペース)の保存
-load
-read.table


**Flow control [#ob02bbd9]
-for (name in vector) {commands}
-if (condition) {commands when TRUE]
-if (condition) {commands when TRUE] else {commands when FALSE}



----

*Rの関数等 [#y9916706]
:#|コメントの記入
:<-|
:[]|
:()|
:,|
:$|
:-|
:!is.na|
:abline|
:append|
:attach|データフレーム内の変数名だけで変数を参照することを可能にする。
:barplot|棒グラフの作成
:byrow|マトリックスに数値が入る順番が変わる。byrow=T
:c|Combine Values into a Vector or List
:cat|コンソールへの出力
:cbind|列の結合
:chisq.test()|カイ2乗検定
:col=|色の指定。col="red",col=topo.colors(3)
:col.names|read.tableの引数。col.names=c("A","B","C")
:colnames|関数
:cor|
:curve|
:Control + c|
:data|組み込みデータセットをメモリーに読み込む。
:data.frame|d<-data.frame() 空のデータフレームの作成
data.frame(A=a,B=b,C=c) ベクトルデータを1つのデータフレームに変換する。
:detach|attachの反対
:dim|行列の次元属性の設定・変更
:dnorm|
:edit|
:example|関数の使い方が例で表示される。example(mean)
:factor|f <- factor(e,levels=1:5) 数値をファクタ(順序尺度のようなデータ)に変換する。ファクタでは、levelが想定されているので、名目尺度(順序のないカテゴリ)とはいえない。
:fisher.test|
:fix|データフレームの編集。fix(d)
:getwd()|作業ディレクトリ(フォルダ)の確認
:head|head(a,n=10)
:help|
:hist|
:history()|それまでに実行されたコマンドの一覧表示。別のウィンドウに表示される。
:is.na|
:levels|levels(f) <- factor(c(1,1,1,2,3)[f]
:length|
:library|
:list|
:lines|
:lm|
:load|
:ls()|
:margin.table|周辺度数
:matrix|
:mean|
:na.rm|
:objects()|ls()と同じ結果。
:order|
:plot|
:print|コンソールへの出力
:prop.table|prop.table(mat,2)←行列matの列パーセント(比率)。頭に「100*」を付けるとパーセントになる。
:prop.test()|比率の差の検定
:q()|終了。q("no")とすると作業スペースを保存せず終了する。
:qnorm|
:range|
:read.csv|CSV形式のデータを読み込む。read.csv("filename.csv")
:read.delim("clipboard", header=F)|Excelからのデータの貼り付け。ウィンドウズのクリップボード経由。「header=T」でもよい。
:read.spss("filename.sav", to.data.frame = TRUE)|
:read.table("filename.csv", header=T, sep=",")|CSV形式。read.csv("filename.csv")と同じ結果。
:read.table("filename.txt", header=T, sep="\t")|タブ区切りのデータの読み込み。
:rbind|行の結合
:rm|オブジェクトの消去。rm(list=ls())とするとすべてのオブジェクトが消去される。
:rowmames()|関数
:row.names=F|write.tableの引数。通常は付けること。write.table(object, file="filename.csv", sep=",", row.names=F)
:runif|
:R Enter|
:RSiteSearch|R-helpメーリングリストの検索。 RSiteSearch("barplot")
:sample|
:save.image|Save R Objects
:sd|
:seq|
:split|
:sqrt|
:subset|
:sum|
:summary|
:t|
:table()|度数分布表、クロス統計表。table(Q1),table(Q1,F1)←Q1 by F1
:tail|最後から数えて6番目のデータから最後のデータまで表示される。
:tapply|
:t.test|
:table|
:text|
:transform|データフレームへの列の追加。transform(x,y=a) 
:write.table(object, file="filename.txt", sep="\t", row.names=F)|タブ区切り。sepを省略するとスペース区切り。Excelで読み込むことが可能。
:write.table(object, file="filename.csv", sep=",", row.names=F)|Excelで読み込みやすいCSV形式。
:write.csv(object,"filename.csv")|

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS