我正在尝试根据其他变量中包含的数据创建 SAS 变量名称。例如,我可以从
Obs Var1 Var2
1 abc X
2 def X
3 ghi Y
4 jkl X
我想结束
Obs Var1 Var2 X Y
1 abc X abc
2 def X def
3 ghi Y ghi
4 jkl X jkl
我确实有一种方法可以做到这一点,但它需要一些丑陋的宏来首先创建所需的变量(使用长度语句),然后创建一系列编号的宏变量(每个观察 1 个),这些变量随后在数据步骤循环中调用. 它可以工作但很复杂,我认为不能很好地扩展到真实数据,其中包含用于每行创建的多个变量和几千行。
我也尝试过使用数组 - 将变量名称保存在宏 var 中,使用它来生成数组语句,并尝试跟踪每个新变量需要哪个数组索引,但这也很复杂。
真正有帮助的是类似于
vvaluex(var2)=var1
除了 vvaluex 不能在等号的左侧。有什么想法或想法吗?