私は、中規模のRコードの対象となるアナリストや統計者の小さなチームと一緒に作業しています。彼らは賢明な人ですが、プログラマーとしては訓練されておらず、経験もありません。 (私はそうです)彼らはいくつかのRコードを書いてきましたが、私たちのプロジェクトが拡張性、効率性、保守性に優れているためには、構造が整っていなければなりません。より良いプログラマーになるために学ぶより良い方法の1つは、エレガントな既存のコードを研究することです。誰でもCRコードのオープンソースの例をいくつか提案することができます(CRANやどこにいても)、特に明確で、識字され、良い例があると思いますか?機能は良いです、S3オブジェクトはOKです、深い魔法は悪いです。教育目的のために、本当にきれいでクリアな[R]コードの良い例は何ですか?
9
A
答えて
6
(彼らは導入のためには大きすぎるかもしれないが)私の2つの好きなパッケージは、両方のR-フォージで閲覧することができ、非常によく文書化されている:
私はあなたが彼のパッケージを見ている場合Hadley has his own style guide読み取ることができるもののGoogle style guideは、コアチームのスタイルをキャプチャするの偉大な仕事をしていると思います。
このarticle on the R-Wiki is also a good readコードを最適化する方法を見るため:あなたは、特にGithubの(and his homepage is full of useful content)、上のbrowse Hadley's packagesができます。
2
厳密には関係ありませんが、できるだけ早くソースコントロール(perforce、subversion、git、rcsなど)の使用に慣れさせてください。それは学習の痛みを軽減します。
+0
うん、良い助言。彼らは私がチームに加わる前にgitを知り、gitを使っていました... – Harlan
関連する問題
- 1. 教育目的のための単純なラッパークラス対スマートポインタ
- 2. 教育目的のための単純なデータベース実装
- 3. AndroidのcontentDescriptionタグの本当の目的は何ですか?
- 4. Perlの$ VERSION変数の本当の目的は何ですか?
- 5. 教育目的の道路+道路API
- 6. 'ref'属性の本当の目的は何ですか?
- 7. どのページにJSコンソールを挿入するのですか? jsconsole.com教育目的のために
- 8. 接尾辞配列上の良い教育的リソース
- 9. はコールバック中に何かできますか?基本的な目的の問題
- 10. フル外部結合 - 純粋な教育目的のために結合された列
- 11. System.Web.Abstractions:それは何のために良いですか?
- 12. 次のコード例の$の目的は何ですか?
- 13. 「R」の目的は何ですか?
- 14. ScopeGuardは本当により良いコードにつながりますか?
- 15. 教育目的でgoogle-custom-searchを使用する
- 16. コンピュータ上のサウンドについて学びたい初心者のための良い本は何ですか?
- 17. F#コードの最適化、またはそれは本当に遅いですか?
- 18. リーフレットの基本的な例でブラウザに何も表示されない
- 19. テストレシオの良いコードは何ですか?
- 20. 本当に使われている `constructor`プロパティは何ですか?
- 21. Scraping-エラー:いいえJSONオブジェクトは、だから私は、教育目的のために、このページの表をこすりしようとしている
- 22. クライアントファンアウトは本当に良いアイデアですか?
- 23. maybe_convert_objectsは何のために良いですか?
- 24. Rの大きなデータフレームをアンスタッキングするためのより良い方法は何ですか?
- 25. この例の2番目の[]の目的は何ですか?
- 26. EditorReuseAttributeは本当に何ですか?
- 27. 本当に原子は何ですか?
- 28. awakeFromNibは本当に何ですか?
- 29. 私はバブルソートのためのこのcプログラムを書いた。それは良いですが、それは本当にバブル並べ替えロジックですか?
- 30. Vimは本当にいいですか?
まあ、私はキャレットとゼリグを見ましたが、大部分はよくコメントされていません。キャレットの開発者の一人はコメントが好きだと思われますが、それはそれです。私はggplot2のうねりにはかなり精通していますが、使用するのに最適なパッケージですが、コードはほとんどエレガントで比較的よくコメントされていますが、それはあいまいなプロトオブジェクトと動的な関数の作成を多く使用していますそれはまったく学ぶ。最適なコーディングから除外された最適化は、別の問題です。ハドリーの他のパッケージを見てみましょう... – Harlan
私のパッケージのうち、より最近の方が良いです。 'plyr'と(最近の)' stringr'をお勧めします。私の意見では、彼らは主によく書かれ、エレガントです。良いコードを書く方法を他人に教え始めた後、私のコードの品質は本当に向上しました! – hadley