その他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