🔰データフレームのオブジェクト名はどう決めていますか?
Rで何らかの解析作業をおこなうとき、データフレームクラスのオブジェクトを使うことが多いと思う。その際、どういう名称のオブジェクトを作っているのか。自分はdf派だが、パイセンがdatにしていたり先日slack上で見た @hoxo_m さんのコードでもdatが使われていたりで、以外とマイナーなのか?と興味が出てきたので調べてみることにした。
データフレームのオブジェクト名を何にするかでその人が最初に読んだR本がわかる気がする。df派とかdat派とかdata派とかがいる。
— \x48\x65\x6c\x6c\x6f (@u_ribo) August 14, 2015
GitHubでの検索結果
GitHubにあげられている拡張子.r
あるいは.Rmd
のファイルを対象に次のオブジェクト名を検索してみた。なお関数内での定義や余計なファイルも含まれているので正確ではないのでご注意。
name | hits | url |
---|---|---|
dat | 7141件 | URL |
data | 73146件 | URL |
df | 14991件 | URL |
...これはやはりdata.frameのオブジェクト名以外のものが多く入っているためか?
Twitter上での声
収集できた範囲で。鍵アカウントの人は文字だけ引用。
なにも考えない時はxxかaaかなぁ。さいきんdfとか使うようになったけど。
— kazutan v3.2.3 (@kazutan) August 14, 2015
dfもdataもdatもオブジェクト名に使っていない。
dfはやめよう
そんなことを気にしていたら寝耳に水な発言が。
dfもdataもRのbase関数群とかぶるから使わないねえ
— 友利奈緒 (@dichika) August 14, 2015
data()
はパッケージ内のデータセットを呼び出したりする際に使うので知っていたが、df()
については知らかなった。というわけでオブジェクトを見つけ出すapropos
を使って探してみる。
apropos(what = c("^df$"))
## [1] "df"
apropos("$dat$")
## character(0)
apropos("^data$")
## [1] "data"
dat
だけが見つからなかった。では、df
とdata
はどこで使われているのだろう(?df
とかやれば済む話だが、普段使わない関数find
を使ってみる)。
find(what = "df")
## [1] "package:stats"
find("data")
## [1] "package:utils"
df
はF分布用の関数であった。使う機会は個人的には限られているが、ベースパッケージの関数名と衝突してしまうのはよろしくない気がする。
Slackで有識者に聞いてみた
Rでデータフレームを作成する際、オブジェクト名はどのようにしていますか? 候補: df, dat, data, other
上記の設問に対し、リスペクトできるRユーザーに投票してもらった結果...(複数回答あり)。
other派な人たちは
d_*
df_*
とすることが多いらしい(アスタリスクの部分にはデータの構造を示す名称が入る)。なるほど。
df
では上述の関数名と混同してしまうし、ファイル名やデータソースからデータセットの中身を推測するよりも、具体的にデータを表わす名称にしたほうがが良さそうだ。これからはdf_*
でいく所存。