1

研究プロジェクトで、実行にかなり時間がかかる比較的大きなコード ブロックがあります。このプログラムの実行にかかる時間を短縮する必要があるため、profr を実行して、どの関数が最も時間を費やしているかを調べました。というか、表記がわかりません。誰かが私に説明してくれますか、またはこれらが何を意味するかを説明するリソースを教えてくれますか?

[<-.data.frame
[[.data.frame
[<-
[
[.factor
[.data.frame
[<-factor

? 新しいデータフレームを作成してサブセット化するためのRの内部構造のようなものでなければならないことに気づきましたが、どれがどれかわかりません。

ありがとう。

4

1 に答える 1

4

「 RforDummies のチートシートからの引用:

Rオブジェクトのサブセット化

ベクトル、リスト、およびデータフレームは、Rでデータを表す際に重要な役割を果たします。そのため、データのサブセットを簡潔かつ正確に指定できることが重要です。

3つの演算子を使用して、データをサブセット化できます。

  • [[:リストまたはデータフレームから名前または位置で単一の要素を抽出します。たとえば、データフレームアイリスからiris[["Sepal.Length"]]列を抽出します。アイリスから2番目の要素を抽出します。Sepal.Lengthiris[[2]]

  • [:ベクトル、配列、リスト、またはデータフレームから複数の要素を抽出します。たとえばiris[, c("Sepal.Length", "Species")]、列Sepal.Lengthを抽出し、Species虹彩から抽出します。iris[1:10, ]アイリスから最初の10行を抽出します。そしてiris[1:10, "Species"]、虹彩から種の列の最初の10個の要素を抽出します。


?Extractうまく要約されていませんが、同じ情報を見つけることができます;-)


私の推測では、[<-これは遅い操作であることがわかっているので、プロファイリングの問題があります。[<-データフレームに複数の列が割り当てられたループがある可能性があります。これを大幅に高速化するには、次の方法があります。

  • 複数の列の単一の割り当てを行う
  • パッケージの使用data.table
于 2012-07-10T14:45:59.397 に答える