我的sas文件中有一列作为年龄,另一列作为finalage。我想用agefinal列中的值替换agefinal列中的值,只有一个ID(即5)
我使用的代码是:
Data temp;
set temp;
if ID = 5;
then age = agefinal;
run;
我无法替代这些价值观。年龄列中的值未更改。我试图运行此代码来检查值的字符长度,因为两个列的字符类型都是数字。
代码:
Proc contents data = temp;
tables age agefinal;
run;
我得到的输出是:
age : character length 3.
agefinal: character length $3
感谢您的建议。
答案 0 :(得分:1)
尝试删除if语句末尾的分号。现在你正在做的是删除所有id不等于5的记录。
答案 1 :(得分:0)
尝试将格式设置为相同
data temp;
modify temp;
format age agefinal $3.;
run;
然后看看它是否会让你进行替换。
答案 2 :(得分:0)
您提供的代码使用错误运行,删除附加的分号,这可能会解决您的问题:
/* ORIGINAL */
Data temp;
set temp;
if ID = 5;
then age = agefinal;
run;
/* CORRECTED */
Data temp;
set temp;
if ID = 5 /* REMOVED SEMICOLON */
then age = agefinal;
run;
干杯 罗布