Oshio's diary 2

さもありなん。2

【統計ソフト「R」】の出だしのサンプルデータ(.RData)ファイルの文字化けが解決できためも

bluebacks.kodansha.co.jp↑の本を買ってみた。特設サイトのサンプルデータ(.RData)をRコマンダーで読み込むと、マルチバイトエラーがでて、初心者につらかったが、なんとかできたので嬉しいめも。

 

(まとめ)助けてもらったサイト「MacでRStudioを使うときのドツボリメモ」

qiita.com

●できるまでに分かったこと

  1. R Console 上でテキスト選択しようとすると、カーソルがずれる。これは「MS Gothic」にすればよい。とあった。GUIプリファレンスで。その設定をデフォルトにする保存先とかも解説みた。(作業ディレクトリのデフォルトがわからない。)
  2. 「.RData」が文字化け、という対処に、下サイトに助けられました。THX!
    1. 結局、.csvなどの読み込みとは違い、読み込み時の文字コードの選択ではない。
    2. 開いた後に、データ(オブジェクト?)を編集することになる。そのときiconv() 関数で文字コードを変更することになる。
  3. 文字コードが元がなにで、自分のPCがなにを使っているのかなど、いじくりまわしたが、よくわからん。自PC Windows10。
    どうやら、PCは、UTF-8でよさそう。今風。古いのが、Shift-JIS(SJIS)だったり、macからだったりするハズだが、調べてたら、Shift-JIS→UTF-8にくるときに情報が欠損するから復元できない、とかもあり、文字化けした、文字列をコピペしても復元できないような感じだった。よって、やはりバイナリ状態で文字コードをなにかお手当が必要のように対処できた。よきよき。

 

●具体的な処置(統計ソフト「R」超入門の特設サイトのサンプルデータ)

(コマンドは、今思い出しながら手打ちなので、コピペ動作確認してません!w)

まず、.RDataの作業スペースを読み込みする。それから、読み込んだデータがどうなってるか、みた。

>ls()

[1] "PatientStress"

※ls()で、読み込んだデータ(オブジェクト名)がでるので、それを再度コピペして入力すれば、中身がでてくる。「その他」オブジェクトの一覧と同じ動作。

>PatientStress

~~~データの中身、スクリプトだったり、表データだったりする。中身のタイトル部分が、文字ばけしているのがわかる。RStudioでも、同じように文字化けしたタイトルを表示させることができたが、それを直す手立てまで行きつかなかった。Rのみで解決する。~~~

>rownames(PatientStress) <- iconv(rownames(PatientStress), from = "shift-jis", to = "utf8")

これで列名のラベルが書き換わった。よき!!

説明は割愛。

 

p.s. データの中身については、まだ処置してない。表示できてここまで、満足。

同じように、行についてもできそうなので、これで突破できそう。。

 

c.f. データの入出力とか、Import Exportとか、readとかloadとかでてきたけど、文字コードの書き換えが一番根本対処だな。あれ?全部一気にできるのかなー(むむむ)

 

●追加めも

""データフレーム A から 2 列目だけを抜き出すときは、[ ] と列番号を使って""

>PatientStress[2]

で、性別の列だけでてきた。これでいけそう。

だめだった、というか、文字コードの指定がおかしい気がする、結果がオブジェクト全体変換の結果と同じだ。。

、、、、とおもったら、何とか”列”全部を取り出すのにてこずり、時間かかったが、できたー

>iconv(PatientStress[,2], from = "shift-jis", to = "utf8")

これで、男、女が表示されるはず。PatientStress[2]とPatientStress[,2]の挙動の違いはまだ知らないが、A[ 列,行 ]指定のはず、A[1:10,1]とかで、列1~10になる模様。つまり","をつけてベクトルにするかどうかにもかかわるっぽい。

>PatientStress[,2] <- iconv(PatientStress[,2], from = "shift-jis", to = "utf8")

これで、書き換わった。ふぅ。