SAS逐字段检查
SAS check field by field
我试着建立一点检查过程。一个 proc sql
生成一行 table(和 13 个字段),下一步我需要检查 table 中选择的字段是否有 value <> 0
。
在我当前(未完成)的代码下方,示例 table "have"
:
data Have;
input REFERENCE_DATE
L_CONTRACT
L_CONTRACT_ACTIVITY
L_LFC
L_CONTRACT_CO_CUSTOMER
L_CONTRACT_OBJECT
L_CUSTOMER
L_CUSTOMER_RETAIL
L_DPD
L_GL_ACCOUNT
L_GL_AMOUNT
L_EXTRA_COST
L_PRODUCT;
datalines;
450 1 9 8 6 0 4 3 0 0 0 0 0
;
Data work.Collect_data2;
set work.have;
ARRAY tab(13) _temporary_ (0,0,0,0,0,0,0,0,0,0,0,0,0) ;
ARRAY tab_check(*) L_CONTRACT-L_CUSTOMER_RETAIL;
input id L_CONTRACT-L_CUSTOMER_RETAIL;
do j= 2 to 7;
end;
run;
我需要逐个字段检查,因为 L_CONTRACT 到 L_CUSTOMER_RETAIL(字段 2 到 7)。
如果这部分中的任何字段的值 = 0 - 我需要 return 信息表明某些事情不正常。
感谢您的帮助!
此致
length flag .;
if whichn(0, of L_contract -- l_customer_retail) then flag='Not Ok';
else flag='Ok';
您可以使用WHICHN()
函数来测试一系列变量中是否有任何值是0。不需要数组声明。我很困惑为什么你有一个 INPUT
语句和一个 SET
语句但没有 INFILE
或 'CARDS`。这对我来说没有意义。
编辑:将单个破折号更改为两个破折号。
我试着建立一点检查过程。一个 proc sql
生成一行 table(和 13 个字段),下一步我需要检查 table 中选择的字段是否有 value <> 0
。
在我当前(未完成)的代码下方,示例 table "have"
:
data Have;
input REFERENCE_DATE
L_CONTRACT
L_CONTRACT_ACTIVITY
L_LFC
L_CONTRACT_CO_CUSTOMER
L_CONTRACT_OBJECT
L_CUSTOMER
L_CUSTOMER_RETAIL
L_DPD
L_GL_ACCOUNT
L_GL_AMOUNT
L_EXTRA_COST
L_PRODUCT;
datalines;
450 1 9 8 6 0 4 3 0 0 0 0 0
;
Data work.Collect_data2;
set work.have;
ARRAY tab(13) _temporary_ (0,0,0,0,0,0,0,0,0,0,0,0,0) ;
ARRAY tab_check(*) L_CONTRACT-L_CUSTOMER_RETAIL;
input id L_CONTRACT-L_CUSTOMER_RETAIL;
do j= 2 to 7;
end;
run;
我需要逐个字段检查,因为 L_CONTRACT 到 L_CUSTOMER_RETAIL(字段 2 到 7)。 如果这部分中的任何字段的值 = 0 - 我需要 return 信息表明某些事情不正常。 感谢您的帮助!
此致
length flag .;
if whichn(0, of L_contract -- l_customer_retail) then flag='Not Ok';
else flag='Ok';
您可以使用WHICHN()
函数来测试一系列变量中是否有任何值是0。不需要数组声明。我很困惑为什么你有一个 INPUT
语句和一个 SET
语句但没有 INFILE
或 'CARDS`。这对我来说没有意义。
编辑:将单个破折号更改为两个破折号。