After the note "don't do this", here is how:
data have;
week=5;
run;
data want;
set have;
array weeks week0-week187;
do _t = 1 to dim(weeks);
weeks[_t]=0;
end;
weeks[week+1]=1;
run;
Far preferable if you need this 'wide' would be to transpose things so you had 1 row per ID variable, I'd guess, which is pretty easy to do as well. But odds are whatever you need this wide format for can be done as easily/more easily without widening.