頻度はそんなに多くないかとおもうのですが、
SASデータセットをRに移す作業をしたのでメモしておきます。
SASデータセットを作るときに圧縮をかけるのが通常なのですが、
Rに取り込むときに圧縮をかけていると、
読み込みがエラーになるので注意が必要です。
⇒SASにて、データを取り込むときに「compress = no」とオプションをつける!
■R側でのデータ取り込みについて
①パッケージ「sas7bdat」のインストール
とくに注意点なし
②sas7bdatの読み込み
作業効率的に、小さいデータから順に確認しながら取り込みます。
500MBぐらいのデータだと、測ってはいませんが1時間以上はかかります。
#使ったマシンはMacBook Air
メモリ:4G CPU:Intel Core i5
③データの確認
日本語の変数要素が入っている場合は
文字化けしている可能性があります。
■データのクレンジングについて
すごく効率の悪いやり方なのかもしれませんが、
一回データを取り込んだものをCSVで吐き出して、
シェルで一気にエンコードしました。
#R内での処理<sas7bdatのcsv化>
insatall.packages("sas7bdat") library(sas7bdat) x <- read.sas7bdat("sample.sas7bdat" ) write.csv(x,"sample.csv")#シェル(ターミナル)での処理<全角文字のエンコード>
nkf -w sample.csv > sample_utf.csv
■クレンジングしたCSVのDB化
sqliteでデータベース化して、Rに取り込みます。
なおCSVを、わざわざSQLにした理由ですが、
管理したりSQLでちょっとした作業をする時用です。
※場合によって、SQL化の作業は省いても問題ないです!
管理したりSQLでちょっとした作業をする時用です。
※場合によって、SQL化の作業は省いても問題ないです!
#sqlite3でcsvをデータベース化
sqlite3 create tabele sample(rowno,V1,V2,・・・・,Vn); #Rから吐き出した際に、CSVの最初のカラムに行数が挿入されているので、 #「rowno」+「sas7bdatのカラム」とカラムがひとつ増えることに注意。 .separator , .import sample_utf.csv sample
■DBをRに取り込む
このあたりはRwikiが詳しいです。
■おわりに
※まあ、MacBook Airでやるなとか、
SASデータセットをわざわざRに取り込むなって話ですが、
どーしても、やむにやまれずにSASデータセットを
Rで分析するときのための参考情報です。
※そもそも、SASデータセットを圧縮せずに作っている人はごくまれですし。。。
※というよりかは、最初からCSVデータがあるのであれば、
SASデータセットよりも、CSVデータをもらった方が早いよ。
という話なのかも知れません。。