問題タブ [split-apply-combine]

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 投票する
2 に答える
24962 参照

r - 多数の列にわたって同じ統計関数を繰り返すための ddply + 要約

わかりました、立て続けに 2 番目の R の質問です。

私のデータ:

ddply基本的に、通常はとの組み合わせを使用してsummarizeアンサンブルを計算します (たとえば、1 年間の 1 時間ごとの平均)。

上記の場合、時間などのカテゴリを作成します (たとえばstrptime(data$Timestamp,"%H") -> data$hour、そのカテゴリを で使用してddplyddply(data,"hour", summarize, St_01=mean(St_01), St_02=mean(St_02)...)各列のカテゴリごとに平均化します。

しかし、ここで粘着性が生じます。処理する列が 40 を超えていますが、それらすべてをsummarize関数のパラメーターとして 1 つずつ入力する準備ができていません。このコードを生成するためにシェルでループを書いていましたが、それはプログラマーが問題を解決する方法ではありませんか?

ですから、同じ結果をより少ないキーストロークで達成するためのより良い方法がある人はいますか?

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

python - python pandas、DF.groupby()。agg()、agg()の列参照

具体的な問題については、DataFrameDFがあるとします。

すべての「単語」について、「カウント」が最も多い「タグ」を見つけたいと思います。したがって、リターンは次のようになります

カウント列や、順序/インデックスがオリジナルであるか混乱しているのかは気にしません。辞書を返す{ 'the':'S'、...}は問題ありません。

できるといいのですが

しかし、それは機能しません。列情報にアクセスできません。

より抽象的には、agg(function )の関数はその引数として何を見ます

ところで、.agg()は.aggregate()と同じですか?

どうもありがとう。

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

r - `dplyr` 出力に行を追加する

従来plyrの では、返された行は、そのグループ化の入力行数を超えた場合でも、自動的に出力に追加されます。

で同じことを行う方法がわかりませんdplyr。いくつかの試み:

どうすればいいですか?

私が反対している特定の使用例は、区切り文字で区切られた\nテキスト フィールドを分割して「長く」することですが、私はddply常にこの機能を多くの目的で使用しています。

0 投票する
3 に答える
655 参照

r - R の 2 つの要素に基づいて縮小されたデータ テーブルを非分割

Rにデータフレームがあり、「factor1」と「factor2」の2列を因子として使用し、上記の因子の各ペアごとに他のすべての列の平均値を計算する必要があるとします。以下のコードを実行すると、最後の行で次の警告が表示されます。

...

なぜそれが起こっているのですか?それを正しくするにはどうすればよいですか? ありがとう。

これが私のコードです:

EDIT1: データ フレームの作成を追加 (上記参照)

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

java - 現在の項目を前の項目に追加する Java ArrayList。現在のアイテムを削除

コードの目的は、ArrayList> listOfLists の各項目を反復処理し、前のリストを現在のリストに結合し、現在のリストを並べ替えて、次のリストを削除することです (既に結合されているため)。これは、リストが 1 つだけになるまで行う必要があります。これで、ArrayList.get(0) の内容をファイルに吐き出すことができます。

listOfLists はコード部分の前に定義されました。私が苦労しているのは、alStr1 コンテンツを listOfLists.get(0) に戻すにはどうすればよいですか?

提供されるアドバイスは大歓迎です。ありがとう

これは、私が達成しようとしていることを説明します。最初にこれを追加しなかったことをお許しください。

0 投票する
3 に答える
1115 参照

c++ - このRcpp関数を高速化するには?

データセット (行列) がグループに分割され、グループごとの列の合計が返される単純なsplit-apply-combineルーチンを実装したいと考えています。Rcppこれは で簡単に実装できる手順ですRが、多くの場合かなり時間がかかります。Rcppのパフォーマンスを上回るソリューションを実装することRができましたが、さらに改善できるかどうか疑問に思っています。説明するために、ここでいくつかのコードを使用しますR

-loopsforは実際には非常に高速であり、(私にとって) で実装するのが最も簡単であることがわかりましたRcpp。各グループのサブマトリックスを作成し、マトリックスを呼び出すことで機能colSumsします。これは次を使用して実装されRcppArmadilloます。

ただし、この質問への回答に基づいて、 でのコピーの作成にはコストがかかるC++( の場合と同様R) が、ループは の場合ほど悪くないことがわかりましたRarma-solution はsubmatグループごとに (コード内で) マトリックスを作成することに依存しているため、これを回避するとプロセスがさらに高速化されると思います。Rcppしたがって、ループのみの使用に基づく 2 番目の実装は次のとおりです。

use_dt@Roland によって提供されたバージョン (私の以前のバージョンは に対して不当に差別されdata.tableた) と@beginneR によって提案された -solutionを含むこれらのソリューションをベンチマークするdplyrと、次の結果が得られます。

私の直感 (use_Rcppよりも優れているuse_arma) は正しくありませんでした。そうは言っても、if (G(i) != g_id) continue;関数の行use_Rcppがすべてを遅くしていると思います。これを設定するための代替手段について学べてうれしいです。

半分の時間で同じタスクを達成できたことをうれしく思いますがR、いくつかのRcpp is much faster than R例が私の期待を台無しにしてしまった可能性があり、これをさらに高速化できるかどうか疑問に思っています。誰にもアイデアはありますか?また、プログラミングやコーディングに関する一般的なコメントも歓迎しRcppますC++