1

複数の data.frames で特定のタスクを実行するという問題が繰り返し発生しています。これは、テキスト ファイルからインポートされた私の作業例 data.frame です。

 cellID         X          Y Area    AVGFP DeviationGFP   AvgRFP DeviationsRFP Slice GUI.ID
1       1  18.20775  26.309859  568 5.389085     7.803248 12.13028      5.569880     0      1
2       2  39.78755   9.505495  546 5.260073     6.638375 17.44505     17.220153     0      1
3       3  30.50000  28.250000    4 6.000000     4.000000  8.50000      1.914854     0      1
4       4  38.20233 132.338521  257 3.206226     5.124264 14.04669      4.318130     0      1
5       5  43.22467  35.092511  454 6.744493     9.028574 11.49119      5.186897     0      1
6       6  57.06534 130.355114  352 3.781250     5.713022 20.96591     14.303546     0      1
7       7  86.81765  15.123529 1020 6.043137     8.022179 16.36471     19.194279     0      1
8       8  75.81932 132.146417  321 3.666667     5.852172 99.47040     55.234726     0      1
9       9 110.54277  36.339233  678 4.159292     6.689660 12.65782      4.264624     0      1
10     10 127.83480  11.384886  569 4.637961     6.992881 11.39192      4.287963     0      1

以前に投稿した質問のように、slice1...slice40 という名前の data.frames が 40 個あります。

私がやりたいことは、AVGFP と Area の積を含むこれらの各 data.frames に新しい列を追加することです。を使用して、1 つの data.frame でこれを簡単に実行できます。

stats[[1]]$totalGFP <- stats[[1]]$AVGFP * stats[[1]]$Area

このコマンドを統計のすべての data.frame に適用しようとして立ち往生しています

すべての助けに感謝します。解決策を投稿するときに先に進むために、私がフォローするのに役立つコマンドの詳細を説明してください。ありがとう!

4

2 に答える 2

1

このような:

stats <- lapply(stats, transform, totalGFP = AVGFP * Area)

説明するために最善を尽くしますが、完全なドキュメントについては?lapplyおよびを参照してください。?transform

transformtotalGFP = AVGFP * Area引数として渡された型の式に従って、列を data.frame に追加する関数です。たとえば、totalGFP最初の data.frame に列を追加するには、 transform(stats[[1]], totalGFP = AVGFP * Area).

lapply関数 (ここではtransform) をリストまたはベクトル (ここではstats) の各要素に適用し、リストを返します。適用する関数にさらに引数が必要な場合は、lapply呼び出しの最後にこれらを渡すことができますtotalGFP = AVGFP * Area。の各要素をlapplyエレガントに実行する方法を次に示します。transformstats

于 2013-09-29T21:17:40.760 に答える