多くの列からグループ化したり数えたりするのに助けが必要です。3つの列でグループ化してテーブルを作成する(最高のawk)
INPUT:tsvファイル。
1,2,4列でソートされています。
ヘッダ:文字列は、値、長さ、停止、開始
chr1 56971 57065 94 0.287234
chr1 565460 565601 141 0.411348
chr1 754342 754488 146 0.520548
chr1 783856 784002 146 0.315068
chr1 789652 789768 116 0.310345
chr1 790532 790628 96 0.520833
chr2 1744623 1744774 151 0.509934
chr2 1744623 1744774 151 0.509934
chr2 1744623 1744774 151 0.509934
chr2 1748501 1748635 134 0.440299
chr2 1748501 1748636 135 0.444444
OUTPUT:
0-10 length ... 90-100 ............140-150... 190-200
chr1:0-60000 A1(0), B1(0)..A2(1),B2(0.287234).. A,B ... An,Bn
chr1:60000-120000 . . . .
. . . . .
. . . . .
chr1:780000-840000 0,0 ..... 1,0.520833 ......1,0.315068..A,B
chr2:0-60000 A1,B1 ..... . ...... . .. .
A =(入力から3列まで2Nのための)間隔0から60000までの行数
B =(行の数値)で割った入力に5列の合計
第一グループの第1 COによる
for i in {0..249480000..60000}
によって、長さごとにグループ化された行のこの領域のカウント数(0..200..10)
ためlumnと作成領域は、私が試した:今
for z in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 X Y
do
for i in {0..249480000..60000}
do
u=$i
let "u +=60000"
「とI次のことを知らない "。
私は1つの列でグループ化を知っている:
awk -F, 'NR>1{arr[$1]++}END{for (a in arr) print a, arr[a]}'
が、これは私にとって本当に難しいです。私を助けてくれますか?素子の大きさに基づいて
模造多次元な配列(1つの指数が、3 要素で構成)を使用して
与えられた入力に必要な正確な出力を表示するように[編集]してください。このようにすれば、より明確になります。 – fedorqui
それは良いですか?申し訳ございません.. – Vonton
区間の境界を越える範囲はどうなりますか? – Thor