require と :: の使用に関する最近の質問は、R でプログラミングするときにどのプログラミング スタイルを使用するか、およびそれらの長所/短所は何かという疑問を提起しました。ソース コードを参照したり、ネットを参照したりすると、さまざまなスタイルが表示されていることがわかります。
私のコードの主な傾向:
重いベクトル化私はインデックス (およびネストされたインデックス) をよく使用します。その結果、コードがわかりにくくなることがありますが、通常は他のソリューションよりもはるかに高速です。例:
x[x < 5] <- 0
代わりにx <- ifelse(x < 5, x, 0)
クリーンアップが必要な一時オブジェクトでメモリが過負荷になるのを避けるために、関数をネストする傾向があります。特に大規模なデータセットを操作する関数では、これは大きな負担になる可能性があります。例:
y <- cbind(x,as.numeric(factor(x)))
代わりにy <- as.numeric(factor(x)) ; z <- cbind(x,y)
たとえば、コードを一度だけ使用する場合でも、多くのカスタム関数を作成します。
sapply
。_ 横になったままになるオブジェクトを作成することなく、読みやすくなると思います。ベクトル化はよりクリーン (かつ高速) であると考えているため、ループは絶対に避けます。
しかし、これについては意見が分かれていることに気付きました。一部の人々は、私の「Perl」プログラミング方法 (または「Lisp」でさえも、私のコード内でこれらすべての括弧が飛んでいます) と呼ぶものから遠ざかる傾向があります。そこまで行かないけど)。
R での優れたコーディング手法は何だと思いますか?
あなたのプログラミング スタイルは何ですか?また、その長所と短所をどのように見ていますか?