列表方式输入语句中的格式修饰符有3个:“:”,“~”,“&”。下面分别介绍这3中修饰符的使用方法。
“:”。当原始数据是以空格为分隔符时,要想对变量值长度不一致的变量规定统一长度必须使用该格式修饰符。规定变量值是从非空格列种读取,直到第一次遇到一下3种情况之一,该变量值的读取过程才算结束。
l 下一个空格列
l 达到变量预先设定长度(如果没有设定长度就是sas默认字符长度8B)
l 数据行结束
e.g:空格为分隔符时,对变量长度不一致的变量规定统一长度。
data new;
input Univ:$12. plc$ zip;
cards;
MIT Boston 100023
TsinghuaUniv Beijing 100084
;
run;
例中,第一个观测变量Univ的值为MIT(只读3个字符,因遇到空格而结束),第二个观测值为TsinghuaUniv(得到先前定义的变量长度12)。如果只对变量Univ规定长度,而不加格式修饰符(:),在读入第一条记录时就会出错,如果不对Univ规定长度,读入第二条就会只读入Tsinghua,而不是预先要读入的TsinghuaUniv,这是因为SAS默认的字符变量的存储长度就是8B。
“&”。字符输入值可能包含一个或几个空格。因为空格是列表读入方式默认的分隔符,所以如果要读入的数据值本身包括空格时就必须用此格式符。
e.g:空格为分隔符