SAS中文论坛

标题: 关于DLM的一个问题 [打印本页]

作者: shiyiming    时间: 2004-4-19 21:36
标题: 关于DLM的一个问题
如果在我的数据中使用一个符号做分割符,例如DLM=‘*’,但连续两个**则要作为数据读进SAS。应该怎么办。
例如
1*2**2,需要把1读到一个变量中,2**2读到另一个变量中。

多谢
作者: shiyiming    时间: 2004-4-20 08:48
标题: 我有一个办法
[quote="smartie":77e3d]如果在我的数据中使用一个符号做分割符,例如DLM=‘*’,但连续两个**则要作为数据读进SAS。应该怎么办。
例如
1*2**2,需要把1读到一个变量中,2**2读到另一个变量中。

多谢[/quote:77e3d]

如果你的文件不是特别大的话,先用写字板打开,把“**”替换成另外一个符号(当然,选择的符号要和文件中其他数据区别),然后把“*”替换成其它分隔符,最后把“**”替换回去。~~呵呵,似乎有点复杂。
作者: shiyiming    时间: 2004-4-20 23:53
看来只能用列表模式了,如果你的数据整齐的话
data tmp;
infile cards;
input a 1 b$ 3-6;
cards;
1*2**2
;run;

或者把整个当成字符读入,然后用字符函数把它分开
data tmp;
infile cards;
input a$;
b1=input(substr(a,1,index(a,'*')-1),8.);
b2=substr(a,index(a,'*')+1,length(a));
cards;
1*2**2
;run;




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2