Repositioning based on column values


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Repositioning based on column values
# 1  
Old 04-01-2015
Error Repositioning based on column values

Dear all ...
I have a file which I want to change the structure based on the values in some columns and I would be grateful if you can help...
one of my files looks like ... they all have ten rows
Code:
1,0,0
10,0,0
2,0,0
3,0,0
4,1,1
4,1,1
4,1,1
5,0,0
6,0,0
7,0,0
8,0.5,2
9,0.33,3
9,0.33,3

what I was to get is
Code:
1,0
10,0
2,0
3,0
4,3
5,0
6,0
7,1.63 #(0.33*2)+0.5
8,1.63 #(0.33*2)+0.5
9,0.66 #(0.33*2)

So what is happening is if value is not 0 the value in $2 is being published in rows that are between [$1-$3+1, $1] which means for "9,0.33,3", 0.33 is published 3 times in rows 7,8 and 9... else the value stays 0

I have managed to combine the values to combine the multiple row of the same values
Code:
awk -F, '{a[$1]+=$2;} END {for(i in a )  print i","a[i]","}'

so my data now looks like

Code:
1,0,
10,0,
2,0,
3,0,
4,3,
5,0,
6,0,
7,0,
8,0.5,
9,0.666666,

so not sure how to implement get the final row and distribute the values correctly

Can you help

Last edited by A-V; 04-01-2015 at 05:57 PM..
# 2  
Old 04-01-2015
A for loop covers the range [$1-$3+1...$1].
Code:
awk -F, '{for (i=$1-$3+1; i<=$1; i++) {a[i]+=$2}} END {for(i=1; i<=10; i++)  print i","a[i]+0}'

In this implementation the rows with 0 are not defined in the array.
Knowing the number is always 10, one can loop thru 1...10 and cast a missing value to 0 by adding a 0.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Filtering based on column values

Hi there, I am trying to filter a big file with several columns using values on a column with values like (AC=5;AN=10;SF=341,377,517,643,662;VRT=1). I wont to filter the data based on SF= values that are (bigger than 400) ... (25 Replies)
Discussion started by: daashti
25 Replies

2. Shell Programming and Scripting

Concatenate values in the first column based on the second column.

I have a file (myfile.txt) with contents like this: 1.txt apple is 3.txt apple is 5.txt apple is 2.txt apple is a 7.txt apple is a 8.txt apple is a fruit 4.txt orange not a fruit 6.txt zero isThe above file is already sorted using this command: sort -k2 myfile.txtMy objective is to get... (3 Replies)
Discussion started by: shoaibjameel123
3 Replies

3. Shell Programming and Scripting

Fetch parent value based on column values

Hi All, I am trying to achieve the below logic, could you please help me in this. In second row 2nd column I've Value JC2 and the same JC2 is 4th row 1st column.So I need to replace JC2 value in 4th row with JC2 2nd row's 1st column. Input: Job1,JC1 Job1,JC2 Job1,JC3 JC2,JA1... (6 Replies)
Discussion started by: unme
6 Replies

4. Shell Programming and Scripting

Sum column values based in common identifier in 1st column.

Hi, I have a table to be imported for R as matrix or data.frame but I first need to edit it because I've got several lines with the same identifier (1st column), so I want to sum the each column (2nd -nth) of each identifier (1st column) The input is for example, after sorted: K00001 1 1 4 3... (8 Replies)
Discussion started by: sargotrons
8 Replies

5. Shell Programming and Scripting

Choosing rows based on column values

I have a .csv file: A,B,0.6 C,D,-0.7 D,E,0.1 A,E,0.45 D,G, -0.4 I want to select rows based on the values of the 3rd columns such that it is >=0.5 or <= -0.5 Thanks. A,B,0.6 D,G, -0.7 (1 Reply)
Discussion started by: Sanchari
1 Replies

6. Shell Programming and Scripting

Adding values of a column based on another column

Hello, I have a data such as this: ENSGALG00000000189 329 G A 4 2 0 ENSGALG00000000189 518 T C 5 1 0 ENSGALG00000000189 1104 G A 5 1 0 ENSGALG00000000187 3687 G T 5 1 0 ENSGALG00000000187 4533 A T 4 2 0 ENSGALG00000000233 5811 T C 4 2 0 ENSGALG00000000233 5998 C A 5 1 0 I want to... (3 Replies)
Discussion started by: Homa
3 Replies

7. UNIX for Dummies Questions & Answers

Cut from tables based on column values

Hello, I have a tab-delimited table that may contain 11,12 or 13 columns. Depending on the number of columns, I want to cut and get a sub table as shown below. However, the awk commands in the code seem to be an issue. What should I be doing differently? #cut columns 1-2,4-5,11 when 12 &... (3 Replies)
Discussion started by: Gussifinknottle
3 Replies

8. Shell Programming and Scripting

join rows based on the column values

Hi, Please help me to convert the input file to a new one. input file: -------- 1231231231 3 A 4561223343 0 D 1231231231 1 A 1231231231 2 A 1231231231 4 D 7654343444 2 A 4561223343 1 D 4561223343 2 D the output should be: -------------------- 1231231231 3#1#2 A 4561223343 0 D... (3 Replies)
Discussion started by: vsachan
3 Replies

9. Shell Programming and Scripting

How to averaging column based on first column values

Hello I have file that consist of 2 columns of millions of entries timestamp and throughput I want to find the average (throughput ) for each equal timestamp before change it to proper format e.g : i want to average 2 coloumnd fot all 1308154800 values in column 1 and then print... (4 Replies)
Discussion started by: aadel
4 Replies

10. Shell Programming and Scripting

How to pick values from column based on key values by usin AWK

Dear Guyz:) I have 2 different input files like this. I would like to pick the values or letters from the inputfile2 based on inputfile1 keys (A,F,N,X,Z). I have done similar task by using awk but in that case the inputfiles are similar like in inputfile2 (all keys in 1st column and values in... (16 Replies)
Discussion started by: repinementer
16 Replies
Login or Register to Ask a Question