[解決済み] Rの変数名の付け方について教えてください。[クローズド]
質問
Rコードにおける変数や関数の命名規則について、あなたはどのようなものが好きですか?
私が知る限り、いくつかの異なる規則があり、それらはすべて不協和音を奏でながら共存しています。
1. ピリオドセパレータの使用、例.
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
長所 Rコミュニティでの歴史的な前例があり、Rコア全体に浸透している。 Google の R スタイルガイド .
Cons: オブジェクト指向の意味合いが強く、Rの初心者には分かりにくい。
2. アンダースコアの使用
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
長所 多くのプログラミング言語における一般的な規約。 Hadley Wickham のスタイルガイド で好まれ、ggplot2やplyrパッケージで使用されています。
短所。 Emacs-Speaks-Statisticsの'<-'演算子にマッピングされます('ess-toggle-underscore'で変更可能です)。
3. 混合大文字の使用 (camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
長所 いくつかの言語コミュニティで広く採用されているようです。
短所。 最近の前例があるが、歴史的に使われていない(Rのベースまたはそのドキュメントのいずれかで)。
最後に、まだ十分に混乱していないかのように、Google スタイルガイドでは、変数のドット表記を主張していますが、関数の場合は大文字と小文字が混在していることを指摘しなければなりません。
R パッケージ間で一貫したスタイルがないことは、いくつかのレベルで問題があります。 開発者の立場からは、他のコードを保守および拡張することが難しくなります (特に、そのスタイルが自分のスタイルと一貫していない場合)。Rユーザーの立場からすると、構文に一貫性がないため、ある概念を表現する方法が増えて、Rの学習曲線が急カーブになってしまいます(例えば、その日付キャスト関数はasDate()、as.date()、as_date()のどれですか? いいえ、as.Date() です)。
どのように解決するのですか?
以前の回答が良かったので、ここに少し追加します。
-
アンダースコアは 本当に ESS がかなり広く使われていることを考えると、ESS ユーザーによって書かれたコードで多くのアンダースコアを見ることはないでしょう(そしてそのセットには R Core と CRAN の作者が多く含まれており、Hadley のような例外は別として)。
-
ドットは、単純なメソッド ディスパッチで混同される可能性があるため、悪でもあります。私はかつて、R リストの 1 つでこの趣旨のコメントを読んだと思います。
-
というわけで、最終ラウンドではまだ明確な勝者が残っています: camelCase です。また、私は「Rコミュニティの先例を欠いている」という主張に本当に同意しているかどうかわかりません。
そして、そうです: 実践主義と一貫性は教義に勝ります。ですから、同僚や共著者によって使用され、機能するものであれば何でも構いません。 結局のところ、私たちにはまだ議論すべきホワイトスペースと中括弧があるのです。)
関連
-
[解決済み] git リポジトリの命名規則はありますか?
-
R LanguageError in hist.default() : 'x' は数値でなければなりません.
-
[解決済み] MongoDBの命名規則とは何ですか?
-
[解決済み] lm.fit(x,y,offset = offset, singular.ok,...) 0 非NAケースでboxcox式で計算するとエラーになる。
-
[解決済み] R:自然対数を使った方程式をnlsで使う
-
[解決済み] Pythonの変数名や関数名の命名規則について教えてください。
-
[解決済み] C#の定数の命名規則?
-
[解決済み】CSSセレクタ/HTML属性でダッシュが好まれるのはなぜですか?
-
[解決済み】 booleanフィールドの場合、そのゲッター/セッターの命名規則は何ですか?
-
[解決済み] FUN内のlapplyインデックス名へのアクセス
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Rでファイルを読み込む際に、そのようなファイルまたはディレクトリが見つかりません。
-
R言語エラー:図の余白が大きすぎる 解決方法
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
[解決済み] 特定のサイズのプロットウィンドウを作成する
-
[解決済み] 空のdata.frameを作成する
-
[解決済み] なぜ `[`] は `subset` よりも優れているのですか?
-
[解決済み] ggplot2 の棒グラフで棒を並べる
-
[解決済み] ggplot2 を使って 2 つの変数を同じグラフに線でプロットする
-
[解決済み】Rスクリプトで警告をグローバルに抑制する方法
-
[解決済み] データフレームのカラムのデータ型を決定する