文系の学生向けと思われる入門書:緒賀 郷志「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>
コメントは # から行末。 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 透視図法
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")