問題タブ [mapply]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
88 参照

r - 共通のデータフレーム値に従ってリスト要素を組み合わせる

この質問のフォローアップhere、例は具体的ですが、これは一般化可能なアプリケーションのように見えるので、別のスレッドの価値があると思います:

一般的な質問は次のとおりです。元のデータ フレームの値に対応するリストの要素を取得し、元のデータ フレームの値に従ってそれらを結合するには、特にリストの要素の長さが異なる場合はどうすればよいですか?

この例では、それぞれが日付でソートされた 2 つのグループを持つデータフレームがあります。私が最終的にやりたいことは、各セグメントに関連するメトリックだけを持つ、日付ごとに整理されたデータフレームを取得することです。特定のセグメントに特定の日付のデータがない場合は、0 になります。

実際のデータは次のとおりです。

したがって、「abc」セグメントについては、ベンチマークの 75 に対して (value/a) だけを気にします。「xyz」セグメントについては、ベンチマークの 0.04 に対して (k/x) だけを気にします。

最終的には、次のようなデータフレームが必要です。

ここで、「xyz」には 2013 年 1 月 1 日から 2013 年 1 月 3 日までの情報しかないため、それ以降はすべて 0 になります。

私がこの点に到達した方法は次のとおりです。

mapplyに渡す引数を定義する

ベンチマークに対するパフォーマンスを取得する関数

これらを mapply に渡します。

問題は、分割の長さが異なるため、出力が次のようになることです。

各分割の元のデータ フレームから日付を取り込み、それらの日付に従って (データがない場合は 0 で) 結合する方法はありますか?

0 投票する
2 に答える
87 参照

r - 複数のリストへの関数の適用

売上高のカテゴリ変数を持つデータ フレームで、いくつかの基本的な統計 (および後で詳細な統計) を実行しようとしています。売上に加えて、地域 (商人がいる場所)、曜日、時間帯 (昼食、仕事の後など)、その他さまざまなことを追跡します。

以下は、データの小さなランダムなサブセットです: (これは基本的な表現であることに注意してください。実際のデータ フレームには 38 列あります。該当しないもののほとんどを取り除いただけです)。

私が最初にやっていることは、各地域と 1 日の各時間帯の平均と中央値の売上を得ようとすることです。Rにそれぞれのリストを調べて、すべての値を返すようにしたいと思います。私はこれを試しました:

ただし、平均はエリア 1 の各時刻セグメントにのみ適用され、エリア 1 ~ 7 の各時刻セグメントには適用されません。したがって、私の結果は次のようになります。

これはエリア 1 の正解ですが、各エリアで同じ値であることがわかります。R に関数を複数のリストに適用させ、値のすべての組み合わせを返すようにするにはどうすればよいですか?

次のステップは、中央値を適用し、地区レベルで異なる平日について評価することですが、同じ考えがすべての異なる組み合わせに適用されると思います.

0 投票する
1 に答える
1458 参照

r - R: エラーを返す mapply 関数: 因子の水準セットが異なります

2 つのデータフレーム (DfA と DfB) があります。各データフレームには、種、タイプ、地域の 3 つの因子変数があります。DfA にも数値列があり、これを使用して、共有属性に基づいて DfB の新しい列の数値を推定したいと考えています。

種、タイプ、および地域を要求し、それらの属性を使用して DfA のサブセットを作成し、サブセットでアルゴリズムを実行して新しい値を推定する関数があります。関数を実行し、テストとして手動で値を指定すると、正常に動作します。

DfB のすべての因子レベルと組み合わせが DfA で一致する因子を持っている場合、関数は mapply で正常に機能します。しかし、DfB の行に DfA に存在しない因子水準が含まれている場合は、エラーが発生します (因子の水準セットが異なります)。例: DfA に地域 A、B、C のデータが含まれ、DfB に地域 A、B、C、D のデータが含まれている場合、mapply はエラーを返します。領域 D の行を削除すると、mapply 関数が機能します。

行に関数を不可能にする因子レベルが含まれている場合、それをスキップするか、代わりに NA を入れて、関数が機能する行で関数を実行するように指定するにはどうすればよいですか?