使用自定义的分隔符导入SAS大全(TXT各种文件)
(2014-03-08 16:33:28)
标签:
教育 |
分类: 03SAS数据处理 |
例子1:使用自定义的分隔符
缺省, INPUT使用空格作为分隔符. 这个DATA步使用逗号作为分隔符
data num;
,2,3
4,5,6
7,8,9
;
使用dsd缺省将以逗号作为分隔
如果你的分割符有多个字符或者不是逗号,则可以使用下面句子
data nums;
1aa2ab3
4b5bab6
7a8b9
;
上面指定a, b, aa, ab, ba, bb 作为分隔符,输出下面数据
如果输入的字符串中包含分隔符,可使用双引号把字符括起来
data scores;
Joseph,76,"Red Racers, Washington",AAA
Mitchel,82,"Blue Bunnies, Richmond",AAA
Sue Ellen,74,"Green Gazelles, Atlanta",AAv
;
run;
Can you try something like this, take the max length for a field:
data
run;
lrecl 是定义每条记录最长占用宽度,如lrecl =100,即最长占用宽度100个字节,超出部分数据将无法使用。
LRECL是用来规定逻辑记录长度,后面的数字是用来定义读取的文件逻辑长度为多少字节的。
ls其实就是linesize的缩写,是用来规定行的读取长度的,后面的数字是用来定义读取时每行最多读多少个字节的长度。
对于需要按字符型变量设置的情形,该如何编程?
infile "d:\my documents\c.csv" dsd
missover firstobs=2;
input m2
$
label
m2="地区编码"
m3="单位"
m5="常住人口(万人)"
m15="主导工业"
;
run;
读入csv时,有dsd就不用加dlm=','
是你数据本身的问题,你的数据中的第一行即变量行不是以空格作为分隔符的,而是以TAB做为分隔符的,所以出现变量名不可用。
1.
2.
3.
4.
5.
复制代码
上边的这个可以用于你的数据,不过由于你的第一行中有些变量重名,所以最后生成的数据集中重复的变量名采用sas自动设置的变量名代替
An ASCII comma is '2C'x
or
DATA _NULL_;
CALL SYMPUT('TAB','09'x);
RUN;
INFILE filere DLM=",&TAB";