その他tips
一般的なこと
ヘルプを見る
help(関数名)
計算結果の指数表記(e+11とかe-03とか)を回避する
options(scipen=100)
コンソール上に出力を表示せずに外部txtに結果を保存
# 統計結果をファイルに保存するときなどに便利
# sink(ファイル名)に保存する
# sink(**)~sink()間にコードを書く
# sink()で解除する
sink("output.txt")
t.test(data)
sink()
データの操作
行・列の要素数を知る
# ベクトルの場合
length()
# 行列・配列の場合
nrow()
ncol()
dim()
特定の要素を抽出する
# 2行目5列目の要素を抜き出す
# 四角括弧 [行番号, 列番号]で指定する
data[2,5]
# 1列目のすべての行を抜き出す
# 行/列どちらかを省略すると,すべてを指定したことになる
data[,1]
# 1,3,5列のすべての行を抜き出す
data[,c(1,3,5)]
# 1~5行のすべての列を抜き出す
data[c(1:5),]
特定の要素を削除する
# マイナス(-)をつける
# 1列目を削除
data[,-1]
# 1・3・5列目を削除
data[,-c(1,3,5)]
データを結合する
# rbindは行方向,cbindは列方向
# data.frameは列方向で結合
rbind(data1, data2)
cbind(data1, data2)
data.frame(data1,data2)
# わかんなくなったら c() でとりあえず繋げてしまうっていうのもある
# 行列は t() 転置でどうにかする
データの作成
要素が繰り返すベクトルを作る
# 1:4のベクトルを,要素数(ベクトルの長さ)が10になるまで繰り返す
rep(1:4, length=10)
要素が等間隔のベクトルを作る
# 要素の始めと終わり,そして【差分】を指定して,等間隔のベクトルを作る
# 要素の終わりが必ずしも使われるわけではない
seq(2, 10, 5)
seq(10, -4, -5)
seq(10, -4, by=-5)
# 要素の始めと終わり,そして【要素数】を指定して,等間隔のベクトルを作る
seq(2, 10, length=5)
seq(10, -4, length=5)
データフレームを作る
# 「列の名前 = データ(この場合一列)」の順で指定する
newdata <- data.frame(namae1 = data1, namae2 = data2)
条件を指定して要素を抜きだす
論理式
# dataの1列目が0以上かどうかを判断する
# 出力はTRUEかFALSE
data[,1]>0
TRUEの要素を抜き出す
# dataの1列目が0以上の「列」すべてを抜き出す
data[data[,1]>0, ]
# dataの1列目が0以上の「1列目」を抜き出す
data[data[,1]>0, 1]
TRUEのindexを取得する
# 文字列の場合,部分一致で検索されるため,気を付ける
which(data[,1]==0)
which(data[,1]>0)
which(data[,1]=="moji", )
# grepでも同じことができる
# fixed = TRUEで完全一致で検索されるはず
grep("moji", data[,1])
grep("moji", data[,1], fixed = TRUE)
複数の条件を指定して抜き出す
# 論理式を重ねることでもたぶんできるけどdplyrパッケージのfilterを使うと楽です。
# 入ってない場合にはインストールしてから,ライブラリを呼び出す
library(dplyr)
# データはデータフレームである必要があると思う
# フィルタされたデータが返される
a <- filter(data, ex==1)
b <- filter(data, ex==1, sex = 1)
# 他の要素の値が欲しい場合には以下のような感じで指定する
analyzed_data <- a$RT
analyzed_data <- b$RT