【发布时间】:2019-11-22 18:13:21
【问题描述】:
我有一组 A1-A54 列。所有这些列都应该被格式化为数字。但是,这些列中的某些条目存储为“\N”,这会破坏列格式,并且不允许在列上运行类似 proc 的操作。想了解如何通过在所有列上运行循环来将这些值设置为缺失。
我尝试在所有列上使用数组 numeric 运行 do 循环,但由于 \N 存在于某些列中,它们被格式化为字符串变量并且数组方法不起作用。
array nums[*] _numeric_;
if nums[i]='\N' then nums[i]=.;
end;
这不会将 \N 转换为缺失值,因为 SAS 将它们解释为数字变量中的字符串并引发错误。
在数值列中找到错误字符串变量。在运行循环时。
【问题讨论】:
-
显示您用于创建包含 A1-A54 列的数据集的代码
-
\N如果不在字符变量中,“存储”在哪里?您是否正在从文本文件中读取数据?如果是这样,请更改您读取变量的方式,以便将它们定义为数字而不是字符。 -
您需要返回并清理您的数据导入。
\n可能是一个缺失值或一个不应该读入的换行符。这些问题可能会退后几步,我强烈建议您返回并修复它。