在使用 Import Wizard 导入数据时,如何在检测到非数值数据时跳过这些文本字符?


当你使用 Import Wizard 导入 ASCII 数据时,对话框上有一个设置 Non-Numeric Data in a Numeric Field Controls,可以用来检测在导入文件的数值区是否存在非数值数据,并决定在检测到非数值数据时如何处理。

另外,Origin 中有一个变量 __SNUM$,你可以将这个变量赋值为某个文本字符串,使得这个字符串在非数字检测中被视为是一个“数值数据”。例如,如果数据中的缺失值用字符串“NAN”来表示,这时,你可能不希望在导入的时候将 NAN 视为一个非数值数据。

我们以下表数据为例,说明如何使用 Import Wizard 和变量 __SNUM$ 来跳过文本字符。

RUN#1ProductionScrap
118.40.42
2NANNAN
37.60.01
49.20.63
5NANNAN
617.20.05
RUN#2ProductionScrap
14.40.46
2110.25
3NANNAN
4120.18
55.40.98
611.80.87

如果你在 Import Wizard 对话框的 Data Selection 页面上,从 Non-Numeric Data in a Numeric Field Controls 下拉菜单中选择了 Start new worksheet,默认情况下,Import Wizard 对该数据进行非数字检测时,将在遇到 RUN#2 和 NAN 时触发“新建工作表继续导入”的操作。如果我们想将 NAN 视为一个数值数据(缺失值),那么我们必须在导入之前将变量 __SNUM$ 设置为 NAN。

在导入文件之前,请在 Command Window 中运行

__SNUM$="NAN"

NAN 将不会被视为触发“新建工作表”的文本字符串。然后你可以使用 Import Wizard 对话框的 Non-Numeric Data in a Numeric Field Controls 选项,跳过检测到的非数值数据。

在这个例子中,如果没有特意将 NAN 排除在非数值数据之外,将会生成 5 个工作表,而通过使用 __SNUM$ 来进行特殊排除,将只生成 2 个工作表。