オープンソース統計解析システム R

心理実験のデータ解析

文系の学生向けと思われる入門書:緒賀 郷志「Rによる心理・調査データ解析」

Excel (または OpenOffice Calc)でデータを入力してクリップボードにコピーし、 read.delim("clipboard") でデータフレームとして読み込む手順などが説明されている。

<html> <div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4489020678/r4wh-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://images-jp.amazon.com/images/G/09/icons/books/comingsoon_books.gif" alt="Rによる心理・調査データ解析" style="border: none;" alt="no image" /></a></div><div class="amazlet-info" style="float:left;margin-left:15px;line-height:120%"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4489020678/r4wh-22/ref=nosim/" name="amazletlink" target="_blank">Rによる心理・調査データ解析</a><div class="amazlet-powered-date" style="font-size:7pt;margin-top:5px;font-family:verdana;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/4489020678/r4wh-22/ref=nosim/" title="Rによる心理・調査データ解析" target="_blank">amazlet</a> at 10.06.02</div></div><div class="amazlet-detail">緒賀 郷志 <br />東京図書 <br />売り上げランキング: 242801<br /></div><div class="amazlet-review" style="margin-top:10px; margin-bottom:10px"><div class="amazlet-review-average" style="margin-bottom:5px">おすすめ度の平均: <img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-3-0.gif" alt="3.0" /></div><img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-2-0.gif" alt="2" /> 実習の講義にはよい<br /><img src="http://images-jp.amazon.com/images/G/09/x-locale/common/customer-reviews/stars-4-0.gif" alt="4" /> 無難なR入門書<br /></div><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4489020678/r4wh-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div><div class="amazlet-footer" style="clear: left"></div></div> </html>

基本操作

q() 終了
Ctrl-D でも終了できる

使い方を調べる:
help.search("file")
example(sort)
demo(graphics) # image, plotmath など

# 以下、いずれも fft のヘルプを表示する。
> help(fft)
> help('fft')
> help("fft")

# オブジェクトとしての fft の構造を確認する
> str(fft)
function (z, inverse = FALSE)  

# 関数そのものを実行すると内容が表示される。
> fft
function (z, inverse = FALSE) 
.Internal(fft(z, inverse))
<environment: namespace:stats>

# 関数はそのまま help の引数として使える
> help(c)
# c 関数の説明を表示する

# if は関数ではない
> help(if)
# エラー:   予想外の ')' です  ( "help(if)" の) 
> help("if")
# if 命令の説明を表示する。

# q() でなく q を実行すると??
> q
function (save = "default", status = 0, runLast = TRUE) 
.Internal(quit(save, status, runLast))
<environment: namespace:base>

プログラミング言語としての R

コメントは # から行末。

read.table は read オブジェクトの table メソッドではない。
オブジェクト名(変数名・関数名を含む)に使用できる記号はピリオドとアンダーライン。
過去のバージョンではアンダーラインは使用できなかったらしい。
アンダーラインは変数名の先頭文字として使用できない。
.names => OK
_names => NG
names. => OK
names_ => OK

REPL でない処理系:
Rscript
commandArgs() で引数を取得

拡張ライブラリ:
library() リスト
library(help=tcltk) ヘルプ
library(tcltk) ロード

ワークスペース:
ls() オブジェクト一覧
ls(pat="g.*")
save.image() で .RData ファイルに保存する

str(xxx) # オブジェクトの構造を表示

オブジェクトの(いわゆる)メンバーへのアクセス:オブジェクト名$メンバ名
ただし S4 クラスの場合:オブジェクト名@スロット名
str(xx)で確認すればわかる。

いわゆる代入には = でも := でもなく <- を使う。「付値」と呼ばれる。
a<-2 は「a < (-2)」ではなく「aに-2を付値する」の意味。

多くの書籍に書かれていないが、現在のバージョンでは = で代入ができる。
> a = 10
> a
[1] 10
> a <- 20
> a
[1] 20

R では関数はオブジェクトである。
function() は「関数オブジェクトを作る関数」である。
() はオブジェクトを関数として呼び出す一種の演算子と考えられる。

greeting <- function() .... の結果:
greeting はオブジェクト。値を表示させると関数の中身を見ることができる。
greeting() は呼び出した返り値を得る。

class()
names()

ネームスペースの概念がある
audio::play()

覚え書き

配列(ベクトル・行列)の操作:
変数名[xxx,xxx]
変数名[,xxx]
変数名[xxx]

ベクトルを作る。
c(x,x,x) # cはcombineの意味。
1:25 もベクトルを作る。

matrix(0,2,3)
   ,1  ,2  ,3
1,  0   0   0
2,  0   0   0  

fix() 関数や行列を直接編集する。
edit() 編集結果を返す。返り値を代入する必要がある。

options()

a <- seq(0,5,length=5)
結果 0, 1.25, 2.50, 3.75 5.0

sum(ベクトル変数)

sort()

toupper()
tolower()

gegwd()
setwd()
source()

read.table() : データフレームを作って返す
read.csv() 

データ分析の基本
plot()
summary()
print()

数学・パターン認識・視覚化
sin
spline
Mod 絶対値(複素数の)

hclust 階層的クラスタリング
optim 最適化
persp 透視図法

音声(wavファイル)を扱う

tuneR ライブラリを使う。

install.packages("tuneR")
library("tuneR")

mywave <- readWave("xxx.wav")

str(mywave) すると
モノラルファイルは left にデータを読み込んでいる
mywave は Formal クラスである

d = mywave@left
plot(d, type="l")

振幅を半分にする
d2 <- d / 2

バイナリファイルとして読み込む

$ cp /usr/share/sounds/startup.wav .
$ sox startup.wav -c 1 startup.sw

[R]
> raw.data <- readBin("startup.sw", what=integer(), size=2, n=10000000, signed=TRUE)
> plot(raw.data, type="l")
r-project.txt · 最終更新: 2010/06/02 13:32 (外部編集)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0