問題タブ [binning]
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.
c# - それぞれに同様の番号を持つデータのバンド/グループを動的に生成するにはどうすればよいですか?
バンドを動的に生成したいので、それをレポートにグループ化します。
私が最初に考えたのは、最小値と最大値を取り、その差を除算してバンドを生成することでした。
たとえば、大勢の人の給料があるとします。
- 最低支払額は年間12,000ポンド、最高額は3,000,000ポンドです。
- だから私はそれを同じようなサイズの10のバンドに分割しました:(£3mill-£12k)/10=£298800
- だから私の最初のバンドは£12kから£310,800になり、何千人もの人々が参加します
- 私の2番目のバンドは£31万から£61万になり、数百を持っています
- 他のすべてのバンドには、それぞれに数人がいます
したがって、これは実際にはあまり役に立ちません。手動でバンドを作成する場合は、それぞれにほぼ同じ数が必要です。たとえば、£12k-£14k、£14k-£18k、£18k-£25k、£25-£35k、...、£ 150万〜300万ポンド
これはほんの一例です。さまざまなディストリビューションが存在する可能性があります。
バンドを生成するアルゴリズムを探しているので、ユーザーは必要なバンドの数を入力し、データはそれぞれに同じ数のバンドにグループ化されます。
バンディングは迅速である必要があります-データセット全体をループすることはできません。
アプリケーションはSQLの上にC#ですが、他の言語のソリューションも歓迎します。
r - RでのNMRデータのビニング
RのNMRスペクトルを.csvファイルとしてインポートしました(最初の列は他のppm値、さまざまなスペクトルの信号強度を表します)。たとえば、5ポイントごとに1つにデータをビニングしたいと思います。助言がありますか?
乾杯、
マルセロ
r - 行列のビニング平均
n行n列の行列があり、一度に平均10行のビニングを実行したいと思います。つまり、最終的にはサイズn / 10xnの行列が残ります。matlabライブラリを追加し、次のコードを試しました。
しかし、それは機能しませんでした、どのコードを使用する必要がありますか?
ありがとう!!
c# - ビニング用の C# GetHashCode
ポイントのセットに存在する各 x、y ペアでポイントの数をカウントできるように、オブジェクトのセット、特に x と y の値を持つ Point タイプをビンに入れたいと思います。x と y の最大値は [-1000,1000] であるため、可能な点ごとに一意のハッシュ コードを簡単に生成できます。
実際のビニング プロセスでは、ディクショナリを使用してこれを行うことができます。Point をディクショナリに追加/検索すると、GetHashCode が使用されますか?
ビニングを行うためのより良い方法はありますか?
r - Rで異なる長さをビニングする
input1
input2
出力
input1の値を使用してポイント(input2)の密度をカウントしたいと思います。a1-100-200には、この100から200の範囲にいくつのポイントがあることを意味しますか?すなわち3。そして私はすべての入力値に対して同じことをしたいと思います。そして、私はお互いを比較したいと思います。ただし、問題は、値の長さ(200-100=100または270-250=20)が異なることです。それらを互いに比較するために、私は比較できる方法でそれらをスケーリングする必要があります。そこで、10個のビンウィンドウ(出力)を思いつきました。input1ビンを使用してinput2ポイントをカウントします。最後に、x軸にビンをプロットし、y軸に値をプロットする必要がありますxyplot(x(bins)、y1(a1:100:200:+)+ y2(a1:250:270:+ y3 ... + y4)
「+」は、ビンを計算するときに開始点として100、終了点として200を取る必要があることを意味します(100-110は最初のビンになります.....)-正反対を意味します(190-200は最初のビンになります)
1-10は、1から10のビンを意味します
ビンのcolumn1キーに基づいて列1と2を使用する必要があります。範囲内にない値を削除します
c =文字、s =開始、e =終了、s =ストランド、1〜10はinput1のビンです。はい、あなたは正しいビニングです。たとえば、250-270には2つの数値の違いがあります。これは、(270-250 = 20であるため、10個のビンの場合は20/10 = 2になります)
php - 均等にビン:残りの間隔が不均一
$epi
任意の数を任意の数のビンに均等にビン化するスクリプトを作成しています$dpi
。epiはEndsperInchの略です。dpiは、1インチあたりのデントを意味します。3つの要件があります。
- ビン番号は、可能であれば最小公約数だけ減らす必要があります
- たとえば、6dpiの10エピは3dpiの5エピで表す必要があります
- ビンの数はできるだけ均一にする必要があります
- たとえば、2-2-1は3-1-1よりも優れています
- 短いビンは、ビン配列全体に均等に分散する必要があります
- 例:1-0-1-0-1は1-1-1-0-0よりも優れています
これは私がこれまでに持っているものです。ほとんどの場合、必要な処理を実行しますが、メソッドを実行するときに、ループを複数回実行する必要がある場合、$epiの分散は均一ではありません 。space()
foreach
悪い出力:
上記の分布は次のようになります。
space()
複数のループを必要とするビニングが許容可能な分布を生成するようにメソッドを修正するにはどうすればよいですか?
r - データフレーム内の重複データから選択する
以前、データフレームから重複行を抽出することについて質問しました。次に、スクリプトを実行して、これらの重複のどれを最終データセットに保持するかを決定する必要があります。
このデータセットの重複するエントリは、同じ「Assay」と「Sample」の値を持っています。重複するエントリを含む新しいデータセットImの最初の10行は次のとおりです。
'Data'の値(1、0、またはNA)に基づいて、これらの重複サンプルを4つのビンに分割するスクリプトを実行したいと思います。
上記のデータから期待される結果は次のようになります。
このデータセットに3つ以上の「重複した」データポイントが存在する場合があります。私はRの初心者であるため、これをどこから始めればよいのかさえわかりません。
編集:期待されるデータを使用。
python - numpy 2d 配列の平均化または再ビン化によるサイズ変更
PythonでIDL関数を再実装しようとしています:
http://star.pst.qub.ac.uk/idl/REBIN.html
これは、平均化によって2次元配列を整数倍に縮小します。
例えば:
関連するサンプルの平均をとって (2,3) にサイズ変更したいと思います。予想される出力は次のようになります。
すなわちb[0,0] = np.mean(a[:2,:2]), b[0,1] = np.mean(a[:2,2:4])
、など。
私は 4 次元配列に再形成し、正しいスライスで平均を取るべきだと信じていますが、アルゴリズムを理解できませんでした。何かヒントはありますか?
performance - Mathematica の高速 2D ビニング アルゴリズム
Mathematica で適切に高速なビニングアルゴリズムを開発するのに苦労しています. T={{x1,y1,z1},{x2,y2,z2},....} という形式の大規模な (~100k 要素) データ セットがあり、それを 2D 配列にビン化したい100x100 ビン。ビン値は、各ビンに分類される Z 値の合計によって与えられます。
現在、テーブルの各要素を反復処理しており、Select を使用して、ビン境界のリストに基づいてどのビンにあると想定されているかを選択し、そのビンを占める値のリストに z 値を追加しています。最後に、Total をビンのリストにマップし、それらの内容を合計します (これを行うのは、最大化などの他のことをしたい場合があるためです)。
これを行うために Gather などの関数を使用してみましたが、おそらく Gather の使用が不十分であるにもかかわらず、上記の方法はとてつもなく高速でした。とにかく、私の方法で並べ替えを行うにはまだ数分かかりますが、Mathematica の方がうまくいくと思います。誰かが便利な効率的なアルゴリズムを持っていますか?
python - Pythonのmatplotlibカラーバーに小さな値を表示する
デフォルトの「jet」マップでカラーバーを使用しており、それを「hexbin」で使用しています。私のビンには 0 から約 1500 の範囲のカウントがあります。問題は、いくつかの六角形のビンの最小値が 1 から 10 の間であるのに対し、いくつかのビンには数百のカウントがあることです。これは、jet カラーマップでは、0 から 10 の範囲がカラー 0 として表示されることを意味します。つまり、カウントが 0 のビンと見分けがつきません。それらの小さな値が表示されるようにしたいと思います。カラーマップに次のようなことをさせるにはどうすればよいですか: N 以上のビン値に「可視」、つまりカラーマップの 0 ビン値とは異なる値があることを確認してください。
ありがとう。