I am a biit confused about why you are doing it this way in the first place, its a pretty inneficient method. Also, I would highly recommend a review of naming conventions!
Now onto the why. If you look at the all dataset you will see that there are rows where tit1 is missing, tit2 is missing etc. This is because each one is only defined in the datastep it appears in, so does not cross across all datasets. When the put to file happens is prints the empty space because you have asked it to with: put tit1 tit2 tit3 tit4 var1;
on the first data part of all tit1 gets printed, on the second, missing gets printed as tit1 is empty, then tit2 gets printed, on the third, tit1 and tit2 are both printed as space, then tit3 etc.
... View more