ぼやかないつもりのメモ(ブログ Ver)

つぶやきとメモの記録。更新はぼちぼち。

Rのコマンドメモ

汚いデータを読み込むと結構エラーが出て読み込めなかったりする.研究の最初の段階(データのクリーニングよりも前)でデータベースを固める時期に使ったコマンド(上から読み込み,マージ,追加,書き出し)を少しメモして残しておく.

hoge <- read.table("ファイル", header = T, sep = ",", fill = T, na.string = "")
hoge <- merge(ファイル1, ファイル2, by = "変数名", all = T, sort = F)
hoge <- rbind(hoge1, hoge2)
write.table(hoge, "ファイル", quote = F, sep = ",", row.name = F, na = "", append = F)

Rだけですべてが完結する場合は,「na.string = "NA"」とした方がいい.読み込みの際に,「fill = T」をつけると読み込める確率が上がっている気がする*1.異なる変数名同士でマージするときは,?mergeしてもう一度調べる.この段階でソートはいらないから「sort = F」しておく.書き出しの際にも「na = ""」しておく.「append = F」でファイルを上書きする.
2008年2月6日追記(バッドノウハウだけど…).あまりデータの型が揃っていないデータのアペンドでは「rbind」を使う際に,以下のようにしておいた方が良い*2

hoge <- rbind(hoge1, sapply(hoge2, as.character))

数値型のデータに文字型をアペンドする事は可能だが,文字型のデータに数値型などのデータをアペンドすると「In `[<-.factor`(`*tmp*`, ri, value = c(○○): 不正な因子水準です。NAが発生しました」という(それを読むだけでは意味の良くわからない)警告が出て,数値がに書き換えられてしまう.それを避けるためにも型が混ざっているようなデータの場合は,「rbind」の二つ目の引数に「sapply(引数, as.character)」をつけていた方がいいだろう.

*1:Rコマンダーで,よくファイルを読み込み損なうのはこれが原因?

*2:特に,そのまま解析せずに一度csvなどに出力する際は.