我需要在创建数据后删除数组吗?

Jin*_*ang 2 sas

我使用以下代码从数据集创建一个数组:

DATA REPLACED;
    SET TPS_DROPPED;
    array arr_jin(*) _numeric_;
    do i=1 to dim(arr_jin);
        if arr_jin(i) = . then arr_jin(i) = 0;
    end;
    drop i arr_jin;
RUN;
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误日志:

ERROR 241-185: The array arr_jin is not allowed in a DROP/KEEP/RENAME context.
WARNING: The variable arr_jin in the DROP, KEEP, or RENAME list has never been referenced.
Run Code Online (Sandbox Code Playgroud)

通常在创建后不需要删除数组吗?

Tom*_*Tom 5

SAS数据步骤中的ARRAY不是变量,因此DROP没有任何内容.

如果您确实要删除使用数组引用的实际变量,则需要在DROP语句中列出这些变量名称.

  • 只是为了进一步澄清:SAS中的数组只是一种便利,它不是自己的数据类型.SAS只有[数字列]和[字符列]作为数据类型,其他一切都很方便. (2认同)