[解決済み] Rの関数を高速化するためのC言語の書き方はどこで学べますか?[クローズド]
質問
Rで使うC言語のコードの書き方を学ぶのに最適なリソースは何ですか? 私が知っているのは システムおよび外国語インタフェース のセクションは知っていますが、かなり難しいと感じています。 Rで使用するためのCコードを書くための良いリソース(オンラインとオフラインの両方)は何ですか?
明確にするために、私は C コードの書き方を学びたいのではなく、R と C をよりよく統合する方法を学びたいのです。たとえば、C の整数ベクトルを R の整数ベクトルに(またはその逆に)変換する方法、C のスカラーを R のベクトルに変換する方法はありますか?
どのように解決するのですか?
さて、古き良き ソースを使用する、ルーク! --- R 自体は、勉強できるたくさんの (非常に効率的な) C コードを持っていますし、CRAN には何百ものパッケージがあり、いくつかはあなたが信頼する著者によるものです。 これは、研究し、適応させるための実際の、テストされた例を提供します。
しかし、Josh が疑っているように、私は C++ に傾倒しており、そのため Rcpp . これにはたくさんの例題があります。
編集する。 参考になった本が2冊ありました。
- 1冊目はVenablesとRipleyの「"」です。 S プログラミング は、もうずいぶん古くなってしまいましたが(そして何年も前から第2版の噂がありました)。当時は、単に他に何もなかったのです。
- Chambers' " の第2版。 データ解析のためのソフトウェア そして R の拡張に関する 2 つの章があります。 さらに、John は、私が で行ったことについて、私を酷評しました。 ダイジェスト で私が行ったことについて、John は私を酷評していますので、それだけでも入場料を払う価値があります。
とはいえ、ジョンが好きになってきたのは Rcpp (を気に入ってきており、R オブジェクトと C++ オブジェクトの間のマッチングを見つけながら (そして貢献しています)。 Rcpp を経由して) が非常に自然であることを発見し、そして ReferenceClass がそこで役立つことを発見したからです。
編集 2: ハドレーからの再質問で、私は 非常に強く C++を検討されることを強くお勧めします。Cでは、多くの定型的な無意味なことを行わなければなりません。 を避けることができます。 . このような Rcpp入門ビネット . もう一つの簡単な例として このブログの記事 で、10%の差を気にする代わりに、(Radford Nealの例の1つである)次のようになります。 80 倍 を得ることができます (もちろん、これは意図的な例です)。
編集 3: 控えめに言って、理解するのが難しいC++のエラーに遭遇することがあるという複雑さがあります。 しかし、単に Rcpp を使用する を拡張するのではなく、ただ使うだけなので、ほとんど必要ないはずです。 そして、この コスト は否定できませんが、それをはるかに凌駕するのが メリット よりシンプルなコード、より少ない定型文、PROTECT/UNPROTECT、メモリ管理などの利点にはるかに及ばないものです。 Doug Batesは昨日、C++とRcppはC++を書くよりもRを書くのに似ていると述べたばかりです。 YMMVとその他諸々。
関連
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
[解決済み] Rでデータフレームに行を追加する方法は?
-
[解決済み] HTML、PDF、DOCXで見栄えのするシンプルな手動のRMarkdownテーブル
-
[解決済み] xkcd風のグラフを作るには?
-
[解決済み] 関数のソースコードを見るにはどうしたらいいですか?
-
[解決済み] Rでロードされているパッケージのバージョンを調べるには?
-
[解決済み] Rでtrycatchの書き方
-
[解決済み] 先頭と末尾の空白を削除するにはどうしたらよいですか?
-
[解決済み] Rでオブジェクト(変数)が定義されているかどうかを確認するには?
-
[解決済み] ggplot2 で個々のファセットにテキストをアノテートする
最新
-
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言語のエラーメッセージと関連する解決策
-
R: hclust(d, method = method)でのエラー : 外部関数呼び出しは NA/NaN/Inf(arg10) を持つことができません。
-
R read.table Error:埋め込まれたヌルが含まれているようです。
-
R - ユークリッド距離の計算を簡単にする方法
-
[解決済み] Rの再現性のある優れた例題の作り方
-
[解決済み] リストをデータフレームに変換する
-
[解決済み] データフレームのリストを行単位で1つのデータフレームに結合する
-
[解決済み] ベクトル中のある要素のインデックスを求めるR関数はありますか?
-
[解決済み] FUN内のlapplyインデックス名へのアクセス