SAS转换字符串到数字与输入功能



如何将只有数字的字符串转换为数字,我有这个:

mydataset:
StringNumber
25 
270

的长度是$3

当我使用这段代码时,删除空白。

data eg1;
set   myDataSet;
number=input(strip(StrinNumber),8.);
run;

的结果第一个obs缺失,第二个是270 (ok)。

我试着:

number=input(combpl(StrinNumber),8.);
number=input(compress(StrinNumber),8.);

,结果是一样的

没有什么特别的原因使你的代码不能正常工作,但无论如何这都是更简单的:

data test;
length stringNumber $3;
input StringNumber $;
datalines;
25 
270
;;;;
run;
data want;
set test;
number = input(stringNumber,3.);
put number=;
run;

3。是字符串的长度,你不需要去掉空格。

如果这不起作用,我猜你的25不是真正的数字25加一个空格,而是有一些非空格字符(包括NBSP, 'A0'x,这是常见的从网络上抓取的数据)。

你可以试试:

data want;
set test;
number = input(compress(stringNumber,,'kd'),3.);
put number=;
run;

将从字符串中删除所有非数字字符。如果你确信你的字符串只有数字和某种形式的空格,那么这应该是安全的;如果它可能包含其他字符,这些字符可能有效地指示您不想要的记录(包括像"1.3"这样的东西,它将返回"13"),如果没有更详细的编码,这可能会有风险。

相关内容

  • 没有找到相关文章

最新更新