从 SAS 列中删除美元符号
Remove Dollar signs from SAS Column
我有一个 SAS 数据集,其中某些列包含 $。因此,它的读数不是 67,349,而是 67,349 美元。如何从所有列中删除所有 $ 并让 SAS 将它们识别为数字?
只有几列带有美元符号,所以我可以一次只做每一列。我正在使用 SAS 的免费大学版。
我将从字符串变量中删除 $ 和 , 值。然后使用输入函数转换为数字。
data test;
format incol .;
incol = ",123";
incol = compress(translate(incol,"","$,"));
outcol = input(incol,best.);
output;
incol = "62,123.3";
incol = compress(translate(incol,"","$,"));
outcol = input(incol,best.);
output;
run;
TRANSLATE()
将 $ 和 , 替换为空格。 COMPRESS()
删除所有空格。 INPUT()
将字符串转换为数字。
当然,您可以将所有这些都放在 1 个调用中,但我在这里将其分解以使其更容易理解。
如果你只是想删除 $ 而仍然有一个字符变量,那么使用 compress()
函数。
data want;
set have;
myvar = compress(myvar,'$');
run;
如果您想将字符串转换为新的数值变量,请参阅此现有问题。 COMMA.
信息格式将自动忽略字符串中的 $
和 ,
字符。 Converting character variabls to numeric in SAS
为什么不直接使用 dollar.
信息格式?
data want ;
incol =",123" ;
outcol = input(incol,dollar10.) ;
run ;
我有一个 SAS 数据集,其中某些列包含 $。因此,它的读数不是 67,349,而是 67,349 美元。如何从所有列中删除所有 $ 并让 SAS 将它们识别为数字?
只有几列带有美元符号,所以我可以一次只做每一列。我正在使用 SAS 的免费大学版。
我将从字符串变量中删除 $ 和 , 值。然后使用输入函数转换为数字。
data test;
format incol .;
incol = ",123";
incol = compress(translate(incol,"","$,"));
outcol = input(incol,best.);
output;
incol = "62,123.3";
incol = compress(translate(incol,"","$,"));
outcol = input(incol,best.);
output;
run;
TRANSLATE()
将 $ 和 , 替换为空格。 COMPRESS()
删除所有空格。 INPUT()
将字符串转换为数字。
当然,您可以将所有这些都放在 1 个调用中,但我在这里将其分解以使其更容易理解。
如果你只是想删除 $ 而仍然有一个字符变量,那么使用 compress()
函数。
data want;
set have;
myvar = compress(myvar,'$');
run;
如果您想将字符串转换为新的数值变量,请参阅此现有问题。 COMMA.
信息格式将自动忽略字符串中的 $
和 ,
字符。 Converting character variabls to numeric in SAS
为什么不直接使用 dollar.
信息格式?
data want ; incol =",123" ; outcol = input(incol,dollar10.) ; run ;