【问题标题】:Remove Dollar signs from SAS Column从 SAS 列中删除美元符号
【发布时间】:2016-07-28 23:27:37
【问题描述】:

我有一个 SAS 数据集,其中的某些列包含 $'s。因此,不是读取 67,349,而是读取 67,349 美元。如何从所有列中删除所有 $ 并让 SAS 将它们识别为数字?

只有几列带有美元符号,所以我可以一次完成每一列。我正在使用免费的大学版 SAS。

【问题讨论】:

  • 您已经有一个 SAS 数据集?还是从源文件创建 SAS 数据集?
  • 我在该数据集中有一个现有数据集,其中几列包含美元符号。

标签: sas reformatting


【解决方案1】:

如果您只想删除 $ 并且仍然有字符变量,请使用 compress() 函数。

data want;
  set have;
  myvar = compress(myvar,'$');
run;

如果您想将字符串转换为新的数字变量,请查看此现有问题。 COMMA. 信息将自动忽略字符串中的 $, 字符。 Converting character variabls to numeric in SAS

【讨论】:

    【解决方案2】:

    为什么不直接使用dollar. 信息?

    数据要; incol ="$62,123" ; outcol = input(incol,dollar10.) ; 跑 ;

    【讨论】:

      【解决方案3】:

      我会从字符串变量中删除 $ 和 , 值。然后使用输入函数转换为数字。

      data test;
      format incol $12.;
      
      incol = "$62,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 个调用中完成所有操作,但我在这里将其分解为便于理解。

      【讨论】:

      • 在哪里使用我的专栏名称?在本例中为“HOME_VAL”。我要替换“$62,123”吗?
      • incoloutcol 只是占位符。将incol 替换为您的列,将outcol 替换为您要调用的新列。如果需要,您可以随时删除旧列并将新列重命名为原始名称。
      • 这是向数据集添加行
      猜你喜欢
      • 1970-01-01
      • 2020-12-30
      • 2018-07-22
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 2019-05-31
      相关资源
      最近更新 更多