PROC MEANS calculates the variance as the sum[weight*(x-xbar)^2]/d, where d can be different things. The default is d=n-1. Thus, you will get a very different variance and hence standard deviation by changing the weight from 1 to 5 (no adjustment for the magnitude of the weights). You can adjust for the scale difference by using the statement option VARDEF=WEIGHT. Then, d = sum[weight]. Try: proc means data = temp2 mean min max std n std VARDEF=WGT; var weight height; weight t_wt2; run; This will get you close to the same variance and standard deviation as the original. You could also try VARDEF=WEIGHT to get d=sum[weight] - 1.
... View more