【发布时间】:2018-05-27 16:58:22
【问题描述】:
我面临的问题是将数据放入字符变量中。 所以我有一个长转置数据集,其中有三个变量:date(我事先转置的数据)var(我以前的变量有三个不同的输出)和 col1(包括我以前的变量的值)。 现在我想创建一个具有三个不同输出的第四个变量。我的问题是我可以使用我的代码创建变量 put 它总是会创建缺失值。
data pair2;
set data1;
if var="BNNESR" or var="BNNESR_r" or var="BNNESR_t" then output;
length all $ 20;
all=" ";
if var="BNNESR" then all="pdev";
if var="BNNESR_t" then all="trigger";
if var="BNNESR_r" then all="rdev";
drop var;
run;
之后我想用“all”变量将其转回。我知道我可以在转置之前重命名旧变量,然后保留它们。 但是完整的计算会继续进行,实际上会变成一个宏,如果要那样做就不是那么容易了。
【问题讨论】:
-
为什么在将记录写入输出数据集后还要更改某些变量的值?
-
它是因为 marco 我稍后会转它,因为我总共有 20 次 BNNESR、BNNESR_t 和 BNNESR_r 只是用其他名称。在我再次将其转回后,我将使用 rdev pdev 和触发器进行计算。我试着用宏 var 来计算它总是出错,所以我决定找到一种方法来避免总是有一个宏 var。总的来说,我的代码看起来像这样:
-
宏只是生成代码。所以让它生成有效的代码。
-
您可以使用一种格式将 VAR 重新编码为 ALL。或者使用 SELECT 语句块而不是 IF/THEN/ELSE IF/
标签: if-statement sas character var assign