如何通过避免符号来计算相同的数字?

时间:2019-05-06 10:23:03

标签: sas

我的SAS列如下

-10

20

-30

40

我想使列像

10

20

30

40

我需要删除标志并保持相同的编号。我不知道该怎么做。

3 个答案:

答案 0 :(得分:2)

您可以使用 ABS 功能。

一小段示例代码:

data begin; 
  input var @@; 
  cards; 
1 1 -1 -1 2 -2 -3 3
; run;

data wanted; 
  set begin; 
  var2= abs(var);
run;

有关腹肌的更多信息,请参见documentation

编辑:如果要处理字符串,则可以删除字符串:

data begin; 
  input var $ @@; 
  cards; 
1 1 -1 -1 2 -2 -3 3
; run;

data wanted; 
  set begin; 
  var2= tranwrd(var, '-', '');
run;

有关TRANWRD的文档

答案 1 :(得分:0)

两种不创建其他变量的方式:

data begin; 
input var @@; 
cards; 
1 1 -1 -1 2 -2 -3 3
; run;

data wanted; 
set begin; 
var= abs(var);
run;

proc sql noprint;
create table wanted2 as
select abs(var)as var from begin;quit;

答案 2 :(得分:0)

另一种方法是在var2 = sqrt(var ** 2)处创建一个新变量