由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 问个SAS SCAN的问题
相关主题
SAS 如何处理 raw data怎么去掉一个CHARACTER VAR中的delimiters
百思不得其解的sas base 123题第76题如何read multiple lines into one record in sas
问个SAS 数据读入的问题小包子:怎么读一个文件中的两个不同的delimiters
请教一个SAS数据input的问题请教问题:提供有用信息我会发包子
请教个有关SAS 的问题一个数据文件里边某些cell 包含字符“,”的问题
Another SAS perl question问两个sas的傻问题,怎么知道infile文件的内容呢?
请教两道SAS变量长度的题目问个SAS题目,
问个SAS问题怎么在EXCEL里把一个column的A/B分到两个column里?
相关话题的讨论汇总
话题: scan话题: 80话题: sas话题: 读成话题: substr
进入Statistics版参与讨论
1 (共1页)
y********e
发帖数: 363
1
我有一个变量X,字符型,内容基本都是比率,比如
1:10
1:20
1:160
1:80
...
我现在用SCAN取冒号后边的数值,为了防止有2:AAA这种错误纪录被读入,我用‘1:’
做分隔符,用SCAN,如:
Y=SCAN(X,1,'1:')这时候,凡是冒号后是1开头的数值都被削去了1,比如1:10被读成0
,1:160被读成了60。。。但对于1:80这类非1开头的就没事,1:20被读成20,1:80
被读成80。。。
想问问这是为啥?怎么避免?
d******9
发帖数: 404
2
Because SAS treats both 1 and : as delimiters, so they are skipped.
In your case, you should use:
Y= SCAN(X,2,':');
Then you will get
Y=10
20
160
80
a****t
发帖数: 1007
3
I think you can try substr.
y = substr(x,3);

成0
80

【在 y********e 的大作中提到】
: 我有一个变量X,字符型,内容基本都是比率,比如
: 1:10
: 1:20
: 1:160
: 1:80
: ...
: 我现在用SCAN取冒号后边的数值,为了防止有2:AAA这种错误纪录被读入,我用‘1:’
: 做分隔符,用SCAN,如:
: Y=SCAN(X,1,'1:')这时候,凡是冒号后是1开头的数值都被削去了1,比如1:10被读成0
: ,1:160被读成了60。。。但对于1:80这类非1开头的就没事,1:20被读成20,1:80

y********e
发帖数: 363
4
分别当作delimiter啊,明白了。多谢。

【在 d******9 的大作中提到】
: Because SAS treats both 1 and : as delimiters, so they are skipped.
: In your case, you should use:
: Y= SCAN(X,2,':');
: Then you will get
: Y=10
: 20
: 160
: 80

y********e
发帖数: 363
5
嗯,多谢。

【在 a****t 的大作中提到】
: I think you can try substr.
: y = substr(x,3);
:
: 成0
: 80

1 (共1页)
进入Statistics版参与讨论
相关主题
怎么在EXCEL里把一个column的A/B分到两个column里?请教个有关SAS 的问题
请教SAS ODS to ExcelAnother SAS perl question
sas 简单问题请教两道SAS变量长度的题目
SAS help Need! how to read this raw data问个SAS问题
SAS 如何处理 raw data怎么去掉一个CHARACTER VAR中的delimiters
百思不得其解的sas base 123题第76题如何read multiple lines into one record in sas
问个SAS 数据读入的问题小包子:怎么读一个文件中的两个不同的delimiters
请教一个SAS数据input的问题请教问题:提供有用信息我会发包子
相关话题的讨论汇总
话题: scan话题: 80话题: sas话题: 读成话题: substr