瓢箪鯰的な男がR初級者から中級者になるのを記すブログ

掴みどころのないオッサンのR勉強録。目標は中級者。 その他雑記なども

前回までで、PISA2006のデータを落とすまではやった。 今日は実際にデータをRで読み込むところまで。

#########サンプルコード#############
setwd("C:/01 ブログ/01 PISA2006/INT_Stu06_Dec07")	#データのあるディレクトリに異動
moto<-readLines("INT_Stu06_Dec07.txt")	#データを読み込む
#########ここまで#############

最初のsetwdで、作業ディレクトリに移動させる。
そこにあるテキストファイルを「readLines」で読み込み 「moto」というオブジェクトに代入する。慣れると簡単。

Rはテキストデータをはじめ、様々なフォーマットのデータを読み込めるようになっている。
foreignパッケージで、SASSPSSなどのデータを読める。 xlsxパッケージで、エクセルのブックを読める。 (噂によると、xlsxファイルはxmlファイルを圧縮したものらしいが、噂の真偽はまだ試していない)
さて、PISA2006のデータは700MBと結構重たいので メモリの上に全部展開するのに、数分かかる。 バカでかいファイルを扱う時には、メモリを増設したり SQLなどでデータを切り出してからRに読ませるなどの工夫が必要になる。

データを読ませたら、本当に読み込めたか試してみる必要がある。
PISA2006のコードブックを手元に用意して、次のコマンドを実行する。

#########先頭から100行だけ切り出してくる############# atama100<-head(moto,100) #先頭から100行切り出す 
fix(atama100) #先頭から100行を表示する 
#########切り出す作業終わり########### 

これを実行するとこんな画面が出てくる。
f:id:namazu1945:20170523211708p:plain

・・・色々苦しいが耐えてくれ

さて、コードブックを見ながら、ちゃんと読み込めたかチェックする。
コードブックのP2に、16列目から18列目に国コードが3つのアルファベットで載っているのがわかる。
本当に16列目から18列が国コードになっているか、確かめる。
よかった、ちゃんと読めているようだ。
面倒くさいと思われるかもしれないが、 データをある程度の大きさで切り出して、
コードブックと合わせるという作業は 必ずやらなくてはならない。
コードブックと実際のデータが異なることはよくある話で
もし実際のデータがコードブックと異なっていたら
その部分についてどういう処置を行うか、考えてから分析しなくてはならない。
次はそんな時の対処の方法を予定(カンタンな例ですが)。