我有sas代码,我需要部分转换为c ++代码,但我正在努力了解它的功能。我没有sas的经验,经过几个小时的各种教程和示例后,我的进展很少。我也无法访问任何输入数据或任何相应的输出。代码遵循以下格式,但我更改了变量名称:
size
然后代码继续,但我只需要理解这个if语句的逻辑。在实际的代码中有很多这些语句,但它们都遵循相同的结构,理解一个应该帮助我理解它们。变量值只有类型和唯一性才重要,如果这里的变量共享一个值,那么在原始代码中也是如此,否则它们是不同的。
我知道程序的设计采用了类型/ spec / zone的组合,并将它们转换为其他类型/规范组合,但我似乎无法掌握逻辑。
答案 0 :(得分:2)
DATA和SET语句分别定义目标和源。
第一个OUTPUT语句将确保目标至少有一个从源数据中读取的每个记录的副本。
IF / THEN语句的DO END块内的代码将在运行时写入另外两条记录。它们将具有不同的TYPE,SPEC和SUB变量值,如赋值语句所示。在DO块结束时,TYPE,SPEC和SUB的值将被设置为' ABCD' DEF'和' ABCD DEF'分别。
所以,如果您的输入是
TYPE,SPEC,SUB,ZONE
ABCD,UNK,UNK,0
ABCD,XX,YY,1
UNK,UNK,UNK,0
您发布的代码部分所写的值将是。
TYPE,SPEC,SUB,ZONE
ABCD,UNK,UNK,0
ABCD,XX,YY,1
BCDE,CDE,ABCD DEF,1
EFGH,FGH,ABCD DEF,1
UNK,UNK,UNK,0