2013/04/08

Rでvlookup

エクセルのvlookupをRで処理したい

◇ファイルの読み込み

x <- read.table("text.txt",header = T)


◇結合

z = merge(x, y)

で横方向に結合する
mergeは通常はお互いに共通するキー変数で結合するが、ここで引数にall = Tし、

z = merge(x, y, all = T)

とすると、共通するキー変数がない場合は付け足してmergeしてくれる
つまりExcelのvlookupに相当する処理ができる

また、明示的にキー変数を指定したい場合は

z = merge(x, y, by.x = 'ID', by.y = 'ID')

でキー変数を指定できる
明示的にキー変数を指定した方がわかりやすくてよいですね
数十行ならともかく数千行だと正しく結合されたかどうかパッと見ではわからないし


◇naを0に置換

mergeした結果、もともと値のなかった要素にはnaが代入される

naでは都合が悪そうなのでnaを0に置換する

x <- replace(x,which(is.na(x)),0)

これでうまくいかなければ

x[is.na(x)] <- 0

で置換
ここではna = 0としたが、値無しは値0ではないので計算には都合が悪いかも知れない

◇メモ


Rで行数を数える
nrow()

列数を数える
ncol()


0 件のコメント:

コメントを投稿