Railway gun

Web系企業に勤めるサラリーマンが書くブログ

UbuntuでR:その2~作業ディレクトリの行方~

引き続きUbuntuでRを動かしてみる。作業ディレクトリで少しはまった。

まずはRを起動。起動時のカレントディレクトリは/home/ubuntu/
# ubuntuという名前のユーザで作業。

$ pwd
/home/ubuntu
$ R

これでRが起動された。csvを読み込む。

stocklist.t1 <- read.csv("tosho-1.csv")
# tosho-1.csvは東証1部の株式コード一覧。
ls()
[1] "stocklist.t1"

csvが読み込まれているので、このまま終了。

q()
Save workspace image? [y/n/c]: y

これで.RDataが作られて作業スペースが保存されているはず。
同じディレクトリでRを起動すると、ちゃんと作業スペースが自動で読み込まれていた。
ただし、カレントディクトリを変更してRを起動すると読み込まれない。

作業ディレクトリはどうなっているのか確認してみる。再び/home/ubuntuでRを起動。

getwd()
[1] "/home/ubuntu"

/home/ubuntu配下の.RDataが読み込まれ、/home/ubuntuが作業ディレクトリに。
.RDataと.RHistoryを削除して再度やってみる。

getwd()
[1] "/home/ubuntu"

消してからやっても結果は同じ。
どうやらカレントディレクトリ配下の.RDataを探しに行って、.RDataが無い時はカレントディレクトリをデフォルトの作業ディレクトリとして認識するようだ。
どこからでも同じ作業ディレクトリで起動したいのであれば環境変数なりで調整する必要がありそう。

UbuntuでR:その1~文字コードの変換~

今までWindowsでしかRは使っていなかったけれども、Ubuntuでも使用してみる。
Rパッケージインストール時に他のコンポーネントをインストールしなくてはいけなかったりする。

これは細かいお話の一つだが、Windowsで扱っていたcsvファイルをそのまま読み込もうとすると。

read.csv("xxx.csv")

エラー。

Error in make.names(col.names, unique = TRUE) :
  invalid multibyte string at '<93><fa><95>t'

恐らく文字コードの問題。
真っ新な環境のため変換ツールも入っていない。nkfをインストール。

$ sudo apt-get install nkf

インストール完了。UTF-8に変換。

$ nkf -w8 --overwrite xxx.csv

上書きしてUTF-8に変換。もう一度Rで読み込んでみる。

read.csv("xxx.csv")

(表示は省略)無事読み込めた。