我想創建一個由第四列組織的由製表符分隔的數據數組的移動窗口。爲了簡單起見,我替換X無關字段和添加的第一行中看到的標頭:Perl總結數組中值的滑動窗口
ID-Counts X X Start X X Locations XXXX
X-5000 [X] [X] 0 [X] [X] 1 [X...]
X-26 [X] [X] 1 [X] [X] 1 [X...]
X-34 [X] [X] 1 [X] [X] 0 [X...]
X-3 [X] [X] 20 [X] [X] 9 [X...]
X-200 [X] [X] 30 [X] [X] 0 [X...]
X-1 [X] [X] 40 [X] [X] 5 [X...]
第一列包含該ID通過一個連字符連接一個數字ID和計數。第四列包含我想用來分組數據的所有起始站點。第七列包含我需要用來規範計數的位置數量。
我想爲每條線加總的總值是通過將ID從ID中分開併除以位置數+ 1來確定的(例如,第一行的值爲2500,第2行的值爲排第三,第三十四名)。然後,我想將這些計數/(位置+ 1)相加,對於在第四列中具有值在彼此的20單位內的每一行,從值0-19開始,然後是1-20,2-21等。例如,窗口0(第0列的四個值)將總計行1-3,窗口1總結行2-4,窗口2總和第4行,等等。
我的理想輸出是兩列:第一列有20單位窗口(0,1,2,...)的開始,第二列有每個窗口的總和(在上面的數據2547 ,47.3等)。
我做了一個perl腳本,它將數據過濾並組織成這種格式,並希望爲20unit窗口中的求和添加代碼。作爲perl新手,我將不勝感激任何幫助和解釋。我熟悉跨列的分割和算術函數,但我完全喪失瞭如何在數組中的移動窗口中完成這些功能。謝謝。
重要的部分仍然不清楚。你能否試着解釋一下如何「總結一切」? – memowe
編輯,希望它更有意義。基本上我想在第20列中搜索第4列中的值,將它們各自的計數/ loc + 1值相加,並且對於每20個分組執行此操作(第4列範圍0-19,1-20,2-21 .. ) –