【发布时间】:2021-12-21 22:34:48
【问题描述】:
我对 sas 还很陌生,我正在努力解决这个问题。我有两张桌子A和B。 第一个收集有关客户的购买信息和他们购买的特定产品的信息
一个
| Customer_id | product_code |
|---|---|
| 1111111 | 12345 |
| 1111111 | 34523 |
第二个是某种字典,即包含新旧代码,旧代码是键,新代码是更新版本。
B
| old | new |
|---|---|
| 34523 | 22256 |
| 89765 | 76576 |
我的目标是在表 A 中更新所有对旧代码的引用及其更新(新)版本。最后 A 应该是这样的
| Customer_id | product_code |
|---|---|
| 1111111 | 12345 |
| 1111111 | 22256 |
我会在这个例子中采用的方法如下(伪代码)
if A.product_code in B.old then
A.product_code = B.new
else
nothing
但我在使用 sas 合成器来实现它时有点挣扎。
我真的希望我的问题足够清楚,如有必要,请毫不犹豫地要求进一步澄清。
感谢任何愿意参与的人
【问题讨论】:
-
那些是数字变量还是字符变量?
-
为什么要更改现有数据集?您不应该制作一个具有 PRODUCT_CODE 新值的新数据集吗?为什么要搞乱你的输入?
标签: if-statement sas sas-macro