重命名SAS中的关键变量后,索引文件会更新吗?
Will Index file be updated after renaming the key variable in SAS?
如果在 SAS 中重命名键变量,简单索引将被重命名而不是被删除。
但是,我自己试了一下,重命名key变量后index文件就消失了,请问是哪里出了问题?
这是我使用的代码:
data work.temp(index=(id));
input id $ amount;
cards;
p 52
p 45
a 13
a 56
r 34
r 12
r 78
;
proc contents data=work.temp;
run;
data WORK.temp ;
set WORK.temp (keep=Id amount rename=(Id=Id_Code));
run;
proc contents data=work.temp;
run;
结果可以看到,键变量Id重命名后,索引消失
非常感谢!
使用 MODIFY 而不是 SET。
DATA temp;
MODIFY temp (RENAME=id=id_code);
RUN;
即使您不重命名变量,它也会消失。
data temp;
set temp;
run;
这也会破坏索引。原因是数据步骤正在用新数据集替换原始数据集。所有关于索引的信息都在那个替换中丢失了。
而是使用PROC DATASETS
修改数据集:
proc datasets lib=work nolist;
modify temp;
rename id=id_code;
run;
quit;
如果在 SAS 中重命名键变量,简单索引将被重命名而不是被删除。
但是,我自己试了一下,重命名key变量后index文件就消失了,请问是哪里出了问题?
这是我使用的代码:
data work.temp(index=(id));
input id $ amount;
cards;
p 52
p 45
a 13
a 56
r 34
r 12
r 78
;
proc contents data=work.temp;
run;
data WORK.temp ;
set WORK.temp (keep=Id amount rename=(Id=Id_Code));
run;
proc contents data=work.temp;
run;
结果可以看到,键变量Id重命名后,索引消失
非常感谢!
使用 MODIFY 而不是 SET。
DATA temp;
MODIFY temp (RENAME=id=id_code);
RUN;
即使您不重命名变量,它也会消失。
data temp;
set temp;
run;
这也会破坏索引。原因是数据步骤正在用新数据集替换原始数据集。所有关于索引的信息都在那个替换中丢失了。
而是使用PROC DATASETS
修改数据集:
proc datasets lib=work nolist;
modify temp;
rename id=id_code;
run;
quit;