Rをプログラミング言語として学ぶ方法[終了]


105

統計システムとして学習するのではなく、「プログラミング」言語としてR言語を学習する方法を知りたいのですが。私の質問は、「統計」の説得力を持つRユーザーが頻繁に使用しない可能性がある解析、評価などの関数の理解の欠如によって促されます。

編集:私はRpy RSPerl rJavaのようなツールを調査しており、他のプログラミング言語とのRの通信を容易にする概念を(少なくとも)理解できるようになりたいと思っています。

R用のWebアプリケーション(R-PHP、RApacheなど)が利用できることは、Rをより深く、構造的に理解するためのもう1つの動機付けの要因です。

最後になりましたが、私は、そのような理解が必要でない場合に有益であるRパッケージを作成できるようになりたいと思います。


1
統計システムではなくRをプログラミング言語として使用することを検討している理由を説明できれば、より良い答えが得られます。Rで既に開発されている他のソフトウェアを接着していますか?Rしか知らない他のプログラマーがいるので、Rでの開発を余儀なくされますか?
チップユニ

7
プログラミング言語の観点からRを説明し、Rでの関数型プログラミングとオブジェクト指向プログラミングの原則について説明し、ベストプラクティスに焦点を当てた「Statistical Software Engineering with R」のようなタイトルの本が必ず必要です。比較的大規模なシステムを開発するため。
Harlan、

これはこの言語を学ぶ最も楽しい方法の1つだと思います。tryr.codeschool.com
Kaya

私が再開するという投票は、これが非常に賛成の質問であり、「stackoverflow r」で検索したときのGoogleの最初のヒットの1つであるという事実に基づいています。それは10年前のものであり、まだいくつかの推奨事項のみが有効です。さらに、より近代的な資料を提供する機会の欠如は、閉鎖されました。
IRTFM

@ 42-「チュートリアルを探す」質問とは思わないでしょうか。
カミーユ

回答:


87

まず、John Cookによるこの記事をご覧ください。また、「The R Inferno」も必ずお読みください。

Rホームページには多くの優れたリソースがありますが、特に「An Introduction to R」「The R Language Definition」を読んでください。

非常に密接に関連するいくつかのスタックオーバーフローの質問:

S言語の作成者であるJohn Chambersによる、このテーマに関する私のお気に入りの本:「データ分析のためのソフトウェア:Rによるプログラミング」


同じリンクで答えようとしていました。@harshsinghalあなたがプログラミングの完全な初心者ではないと仮定すると、そのリンクは非常に便利です。
Secko、2009年

Rインフェルノも保証します。それは私がチェンバーズの本から得たものの多くを、冗長さと信念なしに含んでいます。
eytan 2009年

Rインフェルノのドキュメントは素晴らしい
フェデリコジョルジ

23

R-for-a-programming-language(R-for-statisticsとは対照的)を学ぶのに適した本は、Norman MatloffによるThe Art of R Programmingです。

ここに画像の説明を入力してください

それは非常に読みやすく、あなたがコンピュータサイエンティストであるとは限りません。


18

Michael CrawleyのThe R Bookのように、適切で包括的なスタートを切ることをお勧めします。これは、Rコア関数に関する読みやすく完全な本であり、統計的なヒントといくつかの演習が含まれています。Rの強み(線形モデルなど)に重点を置き、有用なコーディングトリックも提供します。不可解なオンラインコースで苦労していたとき、それは私を大いに助けました。

代替テキスト


2
同意します-これは優れた入門書です。クローリーは非常に明確に書いています。
リッチーコットン

細かすぎる。上記のJohn Cookの記事はもっと簡潔です。プログラマーとしては、「The R book」の大部分は必要ありません。
最大の

14

私は非常に実践的な学習者なので、このアドバイスは私の学習スタイルに固有のものかもしれません。あらゆる言語で「プログラムの学習」を開始するのに最適な場所は、通常の経験の範囲外の問題を見つけて、プログラミング言語を使用してそれらを解決しようとすることです。

プログラミング方法について最もよく教えてくれたプロジェクトRは、統計とはまったく関係がありませんでした。

以下のような機能を知るparse()eval()、「良いRプログラマ」であることのため決して尺度です。これらの関数を頻繁に使用する必要があるアプリケーションは、適用できる問題領域の大部分を占めませんR。代わりに、あなたはを知っている「良いプログラマ」であるように努めるべきだと思いますR。これには、問題解決アプローチを洗練することが含まれます。

プログラミングは観客スポーツではありません。利用可能なツールのリファレンスとして優れた本は不可欠ですが、スキルを磨くにはいくつかの問題を見つける必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.