如何消除警告——注意:无效的数字数据,secdiags='V146'

how to get rid of warning -- NOTE: Invalid numeric data, secdiags='V146'

我编写了以下代码,其中 运行 带有

之类的警告
NOTE: Invalid numeric data, secdiags='V4975' , at line 68 column 6.
NOTE: Invalid numeric data, secdiags='V4589' , at line 68 column 6.
NOTE: Invalid numeric data, secdiags='V146' , at line 68 column 6"

由于这些警告,具有这些值的记录将从最终输出中删除。 我应该怎么做才能保留这些值?

Diag1、diag2、diag3...diagN 列是 char 列,其值如下 V4965 V4966 V4967 V520 3536 9059 99760 99761 99762

 Data work.temp1 ;
  set work.nocabg;   

 array secdiaggg {*} diag: ; 
 array diag{*} diag:;     


LENGTH j 3.;
j = 1;       
/* put diag1= diag2 = diag3= diag[n]= into 1 code per line.*/
do until ( j > dim(secdiaggg)); 
    secdiags = diag[j];   /* Creates new CHAR column name secdiags */
    j = j + 1;
    IF secdiags NE . THEN OUTPUT;;  /* This put each Diag code on a separate line for the patient. */
end; 

放下j; 运行;

我不知道为什么你有两个相同变量的数组(secdiagggdiag),但你可能 运行 遇到了这一行的问题:

IF secdiags NE . THEN OUTPUT;;

. 缺少数字。 secdiags 是字符。所以你想要

IF secdiags NE ' ' THEN OUTPUT;

或者,更好:

if not missing(secdiags) then output;

因为 missing 函数同样测试两者。