こんにちは。うまくいけば、これをやや簡単に説明できます。これはループで実行できることはわかっていますが、それには永遠に時間がかかり、この分析を Web ページの一部として実行する必要があるため、何らかの適用機能がうまく機能することを願っています。
私は2つのデータフレームを持っています。データ フレーム A には、個別の「アンカー」とそれぞれのカテゴリ値のリストがあります (これらは、既に実行された ddply からの加重平均値です)。
anchor ecomax ecomin volume price runtime
1 9482 0.12981362 0.5714286 0.12981362 0.1324330 1.00000000
2 9488 0.01458662 0.5544864 0.01458662 0.2967270 0.04166667
3 9549 0.09734398 0.5721429 0.09734398 0.1219376 1.00000000
4 9574 0.00902656 0.5505136 0.00902656 0.1455307 0.14652568
5 9575 0.00902656 0.5505136 0.00902656 0.1460919 0.14652568
6 9576 0.07608863 0.5613563 0.07608863 0.1114813 1.00000000
データ フレーム B は同じカテゴリ値のより大きなデータ フレームですが (ここでは名前は無視してください)、アンカーごとに複数のエントリがあります。
anchor ecomax_max_med ecomin_min_med volume_med price_med run_time_minimum_med
1 9482 0.12981362 0.5714286 0.12981362 0.1120882 1.00000000
2 9482 0.12981362 0.5714286 0.12981362 0.1686777 1.00000000
3 9488 0.01552049 0.5550000 0.01552049 0.2925363 0.04166667
4 9488 0.01292292 0.5535714 0.01292292 0.3041928 0.04166667
5 9549 0.09734398 0.5721429 0.09734398 0.1238916 1.00000000
6 9549 0.09734398 0.5721429 0.09734398 0.1184564 1.00000000
一致するアンカーに基づいて、平均 (データ フレーム A) から B のカテゴリ値を減算します。つまり、B の最初の 2 行 (アンカー 9482) は A の最初の行 (アンカー 9482 平均) との差を取り、B の次の 2 行 (アンカー 9488) は A の次の行 (アンカー 9488 平均) との差を取ります。 、 等々。
最終結果は、新しいデータ フレーム C の各行/列 (アンカー以外) が、データ フレーム B の値とそれに対応するアンカー手段 (データ フレーム A) の差になることです。これがかなり簡単であることを願っています。長いループで簡単に実行できます。これには「マッチ」または「バイ」の組み合わせが必要だと推測していますが、確信が持てず、これは非常にイライラしています。助けてください!