如何将只有数字的字符串转换为数字,我有这个:
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"),如果没有更详细的编码,这可能会有风险。