解串很多很多变量,检查非数字值

Destring many, many variables, checking for non-numeric values

假设我从 excel 导入了具有很多很多变量的数据,比如 v1 到 v4000。这些中的每一个都旨在是数字,并且大多数情况下只有数字值,但有些情况下具有非数字字符。对于其中一些非数字,我知道其含义(例如,“NA”表示缺失),以及可能需要调查的一些未知字符串。

对于每个变量,我想我想做一些事情,例如 1) 创建该变量的数字版本,它具有所有具有数值的情况的原始值,2) 创建一个唯一字符串值列表具有非数字的案例,以便可以对其进行调查。对于 4,000 个变量,我最好使用某种类型的循环来执行此操作。

如何做到这一点?有可能吗?

我能够使用下面的宏解决这个问题,它创建了一个带有“_str”后缀的新变量来保存原始值,因此可以用来报告被转换为系统缺失的值的频率值。

   DEFINE destringvars(names=!cmdend)
    !do !i !in (!names)
        RENAME VARIABLES (!i=!concat(!i,"_str")).
        STRING !i (A9).
        compute !i=!concat(!i,"_str").
        alter type !i(f8).
        TEMPORARY.
        SELECT if SYSMIS(!i).
        FREQUENCY !concat(!i,"_str").
    !DOEND        
    EXECUTE.
!enddefine