第三章建立数据集 (4)利用指针控制读数据的位置 SAS中提供行指针和列指针,用来指出下一输入位置。 1)列指针控制:把指针移向你规定的列。 格式:@n;@指针变量;@(表达式);@字符串’;@字符变量; @(符表达式);+n;+指针变量;+(表达式)。 ●绝对指针控制“@” 把指针移到所要求的列,在@后面跟着列号、变量或求值结 果为列号的表达式。如: INPUT @15 SALES 5.; 相对指针控制“+” 相对指针控制是把指针由当前位置移动规定的列数。如: INPUT @23 DEP $4.+5 W $1.; 在第32列读取W的值
第三章 建立数据集 11 (4)利用指针控制读数据的位置 SAS中提供行指针和列指针,用来指出下一输入位置。 1)列指针控制:把指针移向你规定的列。 格式: @n; @指针变量; @(表达式); @‘字符串’; @字符变量; @(字符表达式); +n; +指针变量;+(表达式)。 ⚫ 绝对指针控制 “@” 把指针移到所要求的列,在@后面跟着列号、变量或求值结 果为列号的表达式。如: INPUT @15 SALES 5.; ⚫ 相对指针控制“+” 相对指针控制是把指针由当前位置移动规定的列数。如: INPUT @23 DEP $4. +5 W $1.; 在第32列读取W的值
第三章建立数据集 读取数据后列指针的定位 读完数据后指针的位置取决于使用的输入方式。 当使用列表输入时指针移向被取值后的第2列, 并从下一非空格列读下一数据。 当使用列输入或格式化输入时,指针移到所取值 后的第1列,并从此列开始计算下一变量的长。如: INPUT A3-4 B:INPUT @3 A2.B; 读完值后,指针移到第5列。 不论什么时候,一旦指针移向新的记录行, 列指针都自动置为1
第三章 建立数据集 12 ⚫ 读取数据后列指针的定位 读完数据后指针的位置取决于使用的输入方式。 当使用列表输入时指针移向被取值后的第2列, 并从下一非空格列读下一数据。 当使用列输入或格式化输入时,指针移到所取值 后的第1列, 并从此列开始计算下一变量的长。如: INPUT A 3-4 B; 或 INPUT @3 A 2. B; 读完值后,指针移到第5列。 不论什么时候, 一旦指针移向新的记录行, 列指针都自动置为1
第三章建立数据集 2)行指针控制 移动指针到指定的行数。 四种行指针控制#n,#指针变量,#(表达式)及/。 当一个观测值的数据多于1行时,输入时要指出 行号及每个观测值所占的行数。可使用/表示移下一 行。#表示某一观测值的第几行。 如一个观测值由3行数据组成,各数据间以空格 间隔,欲输入第一行5个数据中开始的4个数据 NUM,A1-A3,再读入第二行开始的4个数据,则: INPUT NUMI A1-A3/NUM2 B1-B3 #3: 或 INPUT NUMI A1-A3 #2 NUM2 B1-B3 #3: 最后的3表示将行指针移至最后一行(第3行), 下一次执行NPUT语句时,指针就从此行下跳 行,从下一记录的第一行读起
第三章 建立数据集 13 2)行指针控制 移动指针到指定的行数。 四种行指针控制:#n,#指针变量,#(表达式)及/。 当一个观测值的数据多于1行时,输入时要指出 行号及每个观测值所占的行数。可使用/表示移下一 行。#n表示某一观测值的第几行。 如一个观测值由3行数据组成,各数据间以空格 间隔,欲输入第一行5个数据中开始的4个数据 NUM,A1-A3,再读入第二行开始的4个数据,则: INPUT NUM1 A1-A3/NUM2 B1-B3 #3; 或 INPUT NUM1 A1-A3 #2 NUM2 B1-B3 #3; 最后的#3表示将行指针移至最后一行(第3行), 下一次执行INPUT语句时, 指针就从此行下跳一 行,从下一记录的第一行读起
第三章建立数据集 3)行保持符(又称续行符) 行保持符使行指针保持在当前输入行。有两种 行保持说明符:@和@@。 通常一条INPUT语句执行完后, 下一次执行时, 要跳至下一数据行去读。 @:表示NPUT 语句执行完后不换行,下一 INPUT语句从下面接着读入。在一个DATA步有 多个NPUT语句时用@作续行符。 @@:限制读数据指针,使其保持在原行上,直 到该行数据读完。从一行读入多个观测值时,应 使用续行符@@
第三章 建立数据集 14 3) 行保持符 (又称续行符) 行保持符使行指针保持在当前输入行。有两种 行保持说明符:@和 @@。 通常一条INPUT语句执行完后, 下一次执行时, 要跳至下一数据行去读。 @: 表示INPUT 语句执行完后不换行,下一 INPUT语句从下面接着读入。在一个DATA步有 多个 INPUT语句时用@作续行符。 @@:限制读数据指针,使其保持在原行上,直 到该行数据读完。从一行读入多个观测值时,应 使用续行符@@