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

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



**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を使い分けることができる。

**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|




**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)






----

*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|
: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()|
:order|
:plot|
:print|コンソールへの出力
:prop.table|prop.table(mat,2)←行列matの列パーセント(比率)。頭に「100*」を付けるとパーセントになる。
:prop.test()|比率の差の検定
:q()|終了。q("no")とすると作業スペースを保存せず終了する。
:qnorm|
:range|
:read.csv|
:read.delim("clipboard", header=F)|Excelからのデータの貼り付け
:read.spss("filename.sav", to.data.frame = TRUE)|
:read.table("filename.txt", header=T, sep=",")|
:rbind|行の結合
:rm|
:rowmames()|関数
:row.names=F|write.tableの引数
:runif|
:R Enter|
: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を省略するとスペース区切り。

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