文系の学生向けと思われる入門書:緒賀 郷志「Rによる心理・調査データ解析」
Excel (または OpenOffice Calc)でデータを入力してクリップボードにコピーし、 read.delim("clipboard") でデータフレームとして読み込む手順などが説明されている。
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")