Dear ballardw, thanks for you help. Sorry for the way I posted my question, this was my first time. So, I now post again giving a example of how my data is and how I want to reshape it. Attached to this post you find a "datahave" file that represents how my data is organized and another "datawant" that represents how I want them to be. You can use the following program to import the data. My present database is like that: /* Format that I have*/ data have; infile "PUT HERE datahave FILE LOCATION IN YOUR COMPUTER, INCLUDIND .txt" LRECL=1000 DLM=' ' firstobs=2; input ID X1 X2 X3 X4 X5 X6 X7 X8 X9 Xn ; run; I need to transform in a table of one row by ID variable. My desired database is like that: /* Format that I want*/ data want; infile "PUT HERE datawant FILE LOCATION, INCLUDIND .txt" LRECL=1000 DLM=' ' firstobs=2; input ID X1 X2 X3 X4 X5 X6 X7 X8 X9 Xn ; run; Some individuals will face just the first event and I need to code the other events' variables as missing values, other individuals will face 20 events. ID has more than 10,000 values (the database is huge). X is the year of the event variable. As you can see for ID 3 and 4, individuals can live two different events at the same year. I want to create a one row by individual table. I have searched for this information in the forums, but I did not find anything. I tried using the following proc transpose, but the results are not what I want. proc transpose data=have out=wideformat; by ID; var X1--Xn; run; Can anybody help me? Again, many thanks in advance.
... View more