R地獄 〜教えてエライ人〜

T内さんの誘いを受けて、凄く久しぶりにRを触る。聞けば、“circular”というパッケージを使って計算させる際、ある値があると計算しっぱなし、無いとすぐに計算終了、という事態に陥ってるらしい。
ということで、そのデータをメールで送ってもらい、自分のパソコンでも計算させてみることにした。


手順a:
1.データ読み込み
2.角度データを"circular(type="angles", units="degrees")"を使ってcircularデータに変換
3.watson.test(x, alpha=0, dist="vonmises")で検定


結果:
“atan関数が〜”というエラーメッセージが出てそもそも計算すらできない
何だこりゃ?


どうあがいてもこれ以上進まない。T内さんのデータでも、自分のデータでも。途方に暮れていると、T内さんが嬉しそうに「“CircStats”なら計算できたよ」と。そこで、自分もそのパッケージをダウンロードして使ってみることにした。



手順b:
1.データ読み込み
2."rad()"を使ってdegree→radian変換
3.変換データをwatson(alpha=0, dist='vm')で検定


結果:
いつまでたってもマウスカーソルが砂時計



T内さんに「おかしいですよ!同じデータ使ってるはずなのに!!」と疑問をぶつけてみたところ、「わからんなぁ。まあでも俺は自分のパソコンではできたしもういいよ」との生暖かいお返事を頂いた。私だって、今この忙しい時期にこの検証をする必要は無いのだが、いずれは通る道だし、そもそもこういうことがあると気になって眠れない性質なので、不本意だがもう少し付き合ってみることにした。



検証1:手順の違いは?→T内さんはエクセル上でラジアン変換、私はRad()
ならば私も最初からデータをラジアン変換しておけば?



なんと、この場合はきちんと計算結果が出たのである。あれ、じゃあCircStatsのrad()の存在意義は?
まあでもこれで問題解決かな。今度は、自分のデータをこれで計算させてみることに。



結果:3時間放置しても砂時計



おかしいよね。T内さんのデータは1分足らずで計算できたのに、おかしいよね。
あと考えられる原因としては


1.T内さんのデータは0をまたぐ角度データ、私のは90をまたぐ角度データ
2.そもそもインストールの段階でどこか失敗?



何だかもやもやしたものを心に抱きながらも、大学を後にしたのであった。



で、おうちでこの日記を書く為にもう一度トライ。
自宅のパソコンでこのような作業をしていたのは2年ほど前が最後であるため、入っているものが一様に古い。
まず、Rのバージョンアップ、パッケージのインストールから始めた。
回線の具合か知らんが、ダウンロードするのに4,5回ほど失敗したりして、そのたびにパソコン切って寝ようかとも思ったが、安眠を確保するためそこは何とか我慢。T内さんのデータを使って手順aを計算してみた。


あれ?普通に計算できたよ?


正確には、「あるデータがあると砂時計、無いとスムーズ」、つまり、T内さんの最初の状態なわけである。大学のパソコンでは計算するとこまで行かなかったのに、この差は何だ?自宅のパソコンには自分のデータがほとんど入っていないため、これ以降の検証ができないのが残念であったが、こうなるとますます大学のパソコンにインストールしたRはどこかがおかしいのかもしれない。



関係あるかわからないけれど、疑惑の挙動を一つ。
大学のパソコンで、RにCircStatsを読み込む場合

> local({pkg <- select.list(sort(.packages(all.available = TRUE)))
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})


自宅のパソコンで読み込む場合

> local({pkg <- select.list(sort(.packages(all.available = TRUE)))
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})

次のパッケージを付け加えます: 'CircStats'


The following object(s) are masked from package:circular :

A1

The following object(s) are masked from package:circular :

A1inv

The following object(s) are masked from package:circular :

deg

The following object(s) are masked from package:circular :

I.0

The following object(s) are masked from package:circular :

I.1

The following object(s) are masked from package:circular :

I.p

The following object(s) are masked from package:circular :

plot.edf

The following object(s) are masked from package:circular :

pp.plot

The following object(s) are masked from package:circular :

rad

The following object(s) are masked from package:circular :

rose.diag

The following object(s) are masked from package:circular :

rstable

しかし、再インストール1度やったんやけどなぁ。パッチまでちゃんと当てたし。
どっからどうやり直せばいいんだ。おかげで眠れやしない。