在使用 Import Wizard 导入数据时,如何在检测到非数值数据时跳过这些文本字符?
当你使用 Import Wizard 导入 ASCII 数据时,对话框上有一个设置 Non-Numeric Data in a Numeric Field Controls,可以用来检测在导入文件的数值区是否存在非数值数据,并决定在检测到非数值数据时如何处理。
另外,Origin 中有一个变量 __SNUM$,你可以将这个变量赋值为某个文本字符串,使得这个字符串在非数字检测中被视为是一个“数值数据”。例如,如果数据中的缺失值用字符串“NAN”来表示,这时,你可能不希望在导入的时候将 NAN 视为一个非数值数据。
我们以下表数据为例,说明如何使用 Import Wizard 和变量 __SNUM$ 来跳过文本字符。
RUN#1 | Production | Scrap |
1 | 18.4 | 0.42 |
2 | NAN | NAN |
3 | 7.6 | 0.01 |
4 | 9.2 | 0.63 |
5 | NAN | NAN |
6 | 17.2 | 0.05 |
RUN#2 | Production | Scrap |
1 | 4.4 | 0.46 |
2 | 11 | 0.25 |
3 | NAN | NAN |
4 | 12 | 0.18 |
5 | 5.4 | 0.98 |
6 | 11.8 | 0.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 个工作表。