作业帮 > 综合 > 作业

sas 程序试详细说明input语句的两个选项“@”和“@@”的异同点,并举例说明

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/28 15:51:33
sas 程序
试详细说明input语句的两个选项“@”和“@@”的异同点,并举例说明
sas 程序试详细说明input语句的两个选项“@”和“@@”的异同点,并举例说明
一个数据步可以包括多个INPUT语句.在数据步执行过程中,一般的,在INPUT语句执行前,会默认从外部数据源读取一个观测记录(一般为一行或多行)到输入缓冲器中,然后按照INPUT设定的格式读入相关变量到PDV中.当程序有多个INPUT语句时,每一个INPUT语句都会在执行前读入一个观测记录到输入缓冲器.因此若前一个input语句执行完毕之后,若该行的数据没有使用完,遇到下一个INPUT语句时也会放弃之前没有用完的数据.若需要保留前一个INPUT语句使用过的数据行供以后的input语句使用,只需在前一个INPUT语句最后加入跟踪符合@,表示该行没有用完的数据暂时保存在输入缓冲器中以备下一个最近的INPUT语句使用.
在数据步执行的每次循环开始时,程序会将输入缓冲器中的信息删除,在程序执行过程中遇到INPUT语句时,就从源数据文件中读入一个新的观测记录(一般是一行或多行)到输入缓冲器.如果源数据文件中一个数据行有多个观测记录,每次循环也只能读取第一个.若要在程序运行的下一个循环中继续读取之前没有读完的数据行,只需在INPUT语句最后加入两个跟踪符号@@,表示该行没有用完的数据保存在输入缓冲器中以备下一个程序循环继续使用.
例如:
data nums;
input x @;
input y;
datalines;
1 2
3 4
5 6
7 8
;
run;
proc print;run;
注意上述程序第二行的最后“@”符合.
data nums;
input x y @@;
datalines;
1 2 3 4
5 6 7 8
;
run;
proc print;run;
不知道对不对~