2018年末

どうも,大乱闘スマッシュブラザーズSPECIALをやりたいけど,スプラトゥーン2で忙しい.

マイルストーン拾いシリーズは公開するモチベーションが続かなかったので廃案.そもそもToDoリストはプライベートで作ればよい.これ当たり前.

別の使い方を模索していく過程で,技術メモを残すアイデアを実行してみました.せっかく,データ分析にR,心理学実験環境にjavascriptなどを触っているので,コンテンツとして利用させてもらいます.問題につまづいたところから,それを解決した過程を残せたらと思います.

あと,この間からUBER EATSの運び屋(配達パートナー)として,働き始めました.1週間くらいの感想としては,働いているというよりゲームをしている感覚に近いです(もちろん,事件や事故の危険性はあるので,ある程度の緊張感は必要です).東京でのUBER EATS体験記,Tipsなどはたくさんありますが,京都のはまだまだ少なそうなので,そのあたりも肌感覚を交えて記録としてシェアできればと思います.とりあえず,UBER EATSを始めたい人は下記のURLから招待コードを利用して登録してもらえると嬉しいです.
https://partners.uber.com/i/hitoshit45ue

年末ですね.僕は今年度で博士号を取るべく,博士論文の執筆に追われて走り,高学歴ワーキングプアとして収入を1円でも増やすべく,UBER EATSに呼ばれて走る年末となっています.ゆっくりと休みたい.来年度の光を追いつつ,しかし光となって現世から消えてしまわないように気を付けながら慎ましやかに過ごします.有難うございました.

scale()関数から出力される結果の形式について (R技術メモ)

Rでデータの中心化 (Centering) とか標準化 (Standardizing) とかをするのによく使うscale()関数について,出力の形式が見えないところでエラーを起こしていたので,そのことについてメモ.

これまで,scale()関数を使ったデータ編集をしたときは,そのまま直接データフレームに戻していました.(scale()sample1.R)

この状態で,lm()などの関数を使って分析ができます.(scale()sample2.R)

しかし,一部のパッケージ(例として,package::jtoolsのinteract_plot()関数)ではエラーが発生し,結果が出力されません.(scale()sample3.R)

ここで出ているエラーメッセージ (Error: variable ‘Petal.Width_centered’ was fitted with type “nmatrix.1” but type “numeric” was supplied) は,数値形式の (numeric) データが入るところに,マトリクス形式の (nmatrix.1) データが入っているというものでしたが,「そんな形式に変換した覚えはない」という認識だったため,トラブルシューティングに苦戦しました.
データフレームに投入した中心化済み変数をチェックしてみると,まず数値形式ではあることがわかります.ただ,ベクター形式 (vector) ではなく,マトリクス形式 (matrix) としてデータフレームに投入されています.
ですので,データフレームに投入する直前にベクター形式に変換することで回避します.(scale()sample4.R)

この状態で先ほどのinteract_plot()関数を実行すると,エラーなく結果が出力されます. (scale()sample5.R)

どうやら,glm()関数などでも同じようなエラーが起こるようです.
http://r.789695.n4.nabble.com/issue-building-dataframes-with-matrices-td896730.html
scale()関数は便利で使いよいですが,データ形式に注意しないといけないとわかりました.
ちなみにデータフレーム全体にscale()関数を適用する場合も,dataframe()関数で処理しておかないと,データフレーム形式 (data.frame) ではなく,マトリクス形式になってしまうので注意です.(scale()sample6.R)