Ты рядом.Вы столкнулись со странной проблемой с переменной name , поскольку она также становится переменной из PROC TRANSPOSE.Если вы переименуете его, вы получите то, что хотите.Я также перечисляю переменные в явном виде и добавляю некоторые параметры набора данных RENAME, чтобы получить то, что вы, вероятно, хотите.
PROC TRANSPOSE
DATA=TEMP_CORR (rename=_name_ = Name1)
OUT=TEMP_CORR_T (rename = (_name_ = Name2 col1=corr))
;
by name1;
var var1-var10;
RUN;
Редактировать: Если вы не хотите дублировать, вы можете добавить WHERE в набор данных OUT.
PROC TRANSPOSE
DATA=TEMP_CORR (rename=_name_ = Name1)
OUT=TEMP_CORR_T (rename = (_name_ = Name2 col1=corr) where = name1 > name2)
;
by name1;
var var1-var10;
RUN;