【问题标题】:SAS studio - formattingSAS工作室 - 格式化
【发布时间】:2019-01-03 16:22:20
【问题描述】:

我正在尝试格式化 SAS Studio 中的变量,这些变量由于名称超过 32 个字符而被截断,当我尝试在 SAS Studio 中格式化变量时,它会给出警告“此变量未初始化”。当我在 SAS EG 中针对导入的同一个 excel 文档运行相同的代码时,代码可以正常工作并格式化变量。为什么 SAS Studio 中的相同代码不起作用?

代码:

数据测试; 设置测试1; 格式'变量'n best12.; 跑;

【问题讨论】:

  • 你的问题有点混乱。您是在谈论变量的名称吗?在 SAS 中,名称限制为 32 个字符。还是变量的值?在 SAS 中有两种类型的变量,固定长度的字符串和浮点数。 SAS 中的格式是关于如何将值转换为字符串的说明,通常用于在报告中显示。 BEST 是这种数字变量格式的示例。
  • 道歉汤姆,再次阅读我可以理解为什么它令人困惑。 SAS 已经截断了变量名,所以我尝试使用 'name'n 格式化截断的名称(因为那里也有空格)。当我将变量格式化为 EG 中的测试时,从格式 comma14 到 best12 它工作正常,将代码复制到 SAS studio 会给出警告“变量未初始化”
  • 确保您尝试使用变量名而不是附加到它的标签。 PROC IMPORT 可能必须修改列标题以创建有效和/或唯一的变量名称,但它将使用原始列标题作为标签,并且查看 SAS 数据集的许多方法会将标签显示为列标题,而不是使用实际的变量名。

标签: sas formatting


【解决方案1】:

比较 EG 与 Studio 中选项 VALIDVARNAME 的值。在studio中设置为和EG一样。

【讨论】:

  • 如何查看validvarname的值?我只能看到你是怎么设置的。
【解决方案2】:

查看选项当前设置的两种常用方法。 Proc OPTIONS 或函数GetOption

proc options option=validvarname;
run;

%put %sysfunc(getoption(validvarname));

【讨论】:

    【解决方案3】:

    代码不会相同,因为您很可能正在使用具有不同默认设置的两个不同应用程序。正如其他人指出的那样,问题可能出在 validvarname 选项上。我建议将其设置为 V7 以避免这些问题。使用此设置,SAS 默认将它们转换为有效的变量名称,您可以完全避免重命名步骤。

    据说 SAS 9.5 将取消 32 个字符的限制。尚未宣布发布日期,SAS 9.4 M5 最近发布了,所以我并不期待它很快发布。

    【讨论】:

    • 你有一个 roadmap 链接来显示 9.5 中的内容吗?
    猜你喜欢
    • 1970-01-01
    • 2021-11-21
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 2018-12-31
    • 1970-01-01
    • 2020-06-01
    相关资源
    最近更新 更多