我目前正在将我的软件包从SAS Base重组为SAS Enterprise Guide,以便将知识转移到客户端。不幸的是,我必须牺牲的一个方面是在proc sql left join中使用compress到strip的更改,例如以下代码不起作用
data have;
input ID VarA;
datalines;
1 2
2 3
3 4
4 5
;
run;
data have1;
input ID Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 Var9;
datalines;
1 3 4 6 7 3 6 6 7 8
2 2 2 2 2 5 6 7 2 1
3 5 6 7 8 4 5 3 4 3
4 3 4 6 7 4 6 8 3 6
;
run;
proc sql;
create table Want as
select a.*
,b.Var1
,b.Var2
,b.Var3
,b.Var4
,b.Var5
,b.Var6
,b.Var7
,b.Var8
,b.Var9
from Have as a
left join Have1 as b
on compress(a.ID) = compress(b.ID);
quit;
我有时可以使用条带功能,但是提供带有压缩的包更安全,因为观察中通常会放错位置。任何想法?
编辑:为了进一步避免混淆,我通常使用compress函数来查找像EURIBOR 006m这样的债券的参考汇率 - 这使我的通用示例不正确,但左连接通常使用字符变量
答案 0 :(得分:0)
您需要一个字符变量来使用compress函数。您的ID变量是数字。
答案 1 :(得分:0)
尝试转换为角色:
const Person template_person{ 10, "test" };
Person p2 = template_person;
p2.set_age(20);