Converting columns to matrix

Dear All

I would like to convert columns to matrix

For example my data looks like this

D2 0 D2 0 1.0
D2 0 D2 1 0.308
D2 0 D2 2 0.554
D2 0 D2 3 0.287
D2 0 D2 4 0.633
D2 0 D2 5 0.341
D2 0 D2 6 0.665
D2 0 D2 7 0.698
D2 0 D2 8 0.625
D2 0 D2 9 0.429
D2 0 D2 10 0.698
D2 0 D2 11 0.686
D2 0 D2 12 0.314
D2 0 D2 13 0.523
D2 0 D2 14 0.315
D2 0 D2 15 0.269
D2 0 D2 16 0.536
D2 0 D2 17 0.611
D2 0 D2 18 0.273
D2 0 D2 19 0.567
D2 0 D2 20 0.354
D2 0 D2 21 0.701
D2 0 D2 22 0.659
D2 0 D2 23 0.256
D2 0 D2 24 0.621
D2 0 D2 25 0.488
D2 0 D2 26 0.33
D2 0 D2 27 0.613
D2 0 D2 28 0.637
D2 0 D2 29 0.442
D2 0 D2 30 0.282
D2 1 D2 0 0.286
D2 1 D2 1 1.0
D2 1 D2 2 0.448
D2 1 D2 3 0.405
D2 1 D2 4 0.445
D2 1 D2 5 0.399
D2 1 D2 6 0.443
D2 1 D2 7 0.429
D2 1 D2 8 0.502
D2 1 D2 9 0.498
D2 1 D2 10 0.333
D2 1 D2 11 0.274
D2 1 D2 12 0.459
D2 1 D2 13 0.54
D2 1 D2 14 0.44
D2 1 D2 15 0.386
D2 1 D2 16 0.372
D2 1 D2 17 0.476
D2 1 D2 18 0.48
D2 1 D2 19 0.617
D2 1 D2 20 0.623
D2 1 D2 21 0.326
D2 1 D2 22 0.443
D2 1 D2 23 0.349
D2 1 D2 24 0.421
D2 1 D2 25 0.522
D2 1 D2 26 0.411
D2 1 D2 27 0.448
D2 1 D2 28 0.349
D2 1 D2 29 0.451
D2 1 D2 30 0.581

I would like to transform data to

D2 0 D2 0 1.0 D2 1 0.308 D2 2 0.554

something like this.

Is it possible todo using awk.

Kindly advice.

Many Thanks
Balaji

Please use the forum's Search to find similar threads or the bottom of this thread for the similarly named threads.

Not sure what "something like this" is exactly. Try:

awk '!a[$1,$2]++ && NR>1 {print ""} {printf $0}END{print ""}' input

Dear Programmers

I have simplified the data such that it look like as shown below.

I want convert xy data as matrix.

0	1
0	0.308
0	0.554
0	0.287
0	0.633
0	0.341
0	0.665
0	0.698
0	0.625
0	0.429
0	0.698
0	0.686
0	0.314
0	0.523
0	0.315
0	0.269
0	0.536
0	0.611
0	0.273
0	0.567
0	0.354
0	0.701
0	0.659
0	0.256
0	0.621
0	0.488
0	0.33
0	0.613
0	0.637
0	0.442
0	0.282
1	0.286
1	1
1	0.448
1	0.405
1	0.445
1	0.399
1	0.443
1	0.429
1	0.502
1	0.498
1	0.333
1	0.274
1	0.459
1	0.54
1	0.44
1	0.386
1	0.372
1	0.476
1	0.48
1	0.617
1	0.623
1	0.326
1	0.443
1	0.349
1	0.421
1	0.522
1	0.411
1	0.448
1	0.349
1	0.451
1	0.581

Could you please help me.

I tried the awk script its exactly not converting as matrix.

Kindly advice.

Many Thanks
Balaji

Have you tried to search the forums for the similar threads?
This subject has been covered numerous times...

Hi

I checked the forums and tried for my data its not working and not generating matrix.

could you please kindly help.

Many Thanks
Balaji

What exactly have you tried?
Given your latest 'simplified data', what's the desired output?
"something like this" usually isn't good enough to help us help you.
Please use code tags when posting code/data samples.

Hi vgresh

Sorry for confusion.

My data is in such format

D2cls0		D2cls0		1
D2cls0		D2cls1		0.308
D2cls0		D2cls2		0.554
D2cls0		D2cls3		0.287
D2cls0		D2cls4		0.633
D2cls0		D2cls5		0.341
D2cls0		D2cls6		0.665
D2cls0		D2cls7		0.698
D2cls0		D2cls8		0.625
D2cls0		D2cls9		0.429

I would like to transform to

	D2cls0	D2cls1	D2cls2	D2cls3	D2cls4	D2cls5	D2cls6	D2cls7	D2cls8	D2cls9
D2cls0	1	0.308	0.554	0.287	0.633	0.341	0.665	0.698	0.625	0.429

I tried code from this link:

awk '{f1[$3]++;f2[$2]++;a[$3"^"$2]++;}END{ORS="";print "      ";for(j in f2){print j" ";c++;if(c>5){print " ";}}print "\n";for(i in f1){print i;for(k in f2){l=i"^"k;if(a[l] == ""){print "        ";}else{print "   "a[l]"    ";}}print "\n";}}' file

But it didnt give the output as i'm expected.

Kindly advice.

Many Thanks
Balaji

---------- Post updated at 03:29 PM ---------- Previous update was at 03:02 PM ----------

Dear All

could you please advice me how can i get the data as above matrix.

Many Thanks
balaji