Hi @Bal23,
I set msglevel=I in my autoexec.sas, primarily because I want to see the "INFO" messages from MERGE statements about (inadvertently) overwritten variables. These would not occur in the log with the default setting msglevel=N. Here is an example that shows why this can be useful (please focus on the third datastep):
options msglevel=I;
data test1;
do a=1 to 3;
do _n_=1 to 3;
b=a/10;
output;
end;
end;
proc print;
run;
data test2;
input a b;
cards;
1 10
2 20
3 30
;
data new;
merge test1
test2;
by a;
proc print;
run;
Thanks to the option setting, the log for the last data step contains the following message:
INFO: The variable b on data set WORK.TEST1 will be overwritten by data set WORK.TEST2.
This makes me aware that possibly something unwanted has happened with variable b. As you can see, the value of b in the first observation of each BY group has been updated ("overwritten") with the value from dataset TEST2, but the remaining observations still have their old value from TEST1. This mixture of old and new values was most likely not intended.
So, typically you would strive to avoid this INFO message, although msglevel=I, by careful programming. In the example above it could make sense to add the (drop=b) dataset option to test1 in the last data step (depending on the intended result).
In the rare occasions where the overwriting is acceptable and the INFO message cannot be avoided otherwise for some reason, you may want to set msglevel=N for the affected part of the program (and reset it to I afterwards).
... View more