【问题标题】:SAS: formats/informats/types. Their differencesSAS:格式/信息/类型。他们的区别
【发布时间】:2012-04-16 08:15:43
【问题描述】:

关于格式和信息的另一个问题:

格式用于输出(用于显示我和表中的其他用户数据),所以,我不关心它,如果我想以编程方式从表中读取数据,是吗?

但是什么是信息?

我有如下代码的数据步骤:

 data Out; 
       attrib __fromDate __ToDate informat=ddmmyy16. format=worddatx32.
              __name __country length = $10
       ;

 set InputTab;

 /*see Dates*/
 retain __fromDate .;
 retain __ToDate .; 

/*see Strings*/
 retain __name "";
 retain __country "";

 __fromDate=coalesce(__fromDate,fromDate);
 __ToDate=coalesce(__fromDate,fromDate);
 __name=coalescec(__name,name);
 __country=coalescec(__country,country);

run;     

此代码是否有效?每个语句中的所有这些变量都是什么类型的?

我是对的,var 的信息和类型是相似的吗?

此外,日期(__ToDate__FromDate)是否具有数字类型? (它们的缺失值是点.,而不是引号"")?

谢谢!

【问题讨论】:

    标签: types format sas informat


    【解决方案1】:

    在 SAS 中,变量有两种可能的类型:字符或数字。

    Informat 相似但略有不同。它控制 SAS 如何从外部数据源读取数据。共有三种变体,数字、字符和日期/时间。引用您在此处提供的代码,informat=ddmmyy16. 告诉 SAS 以日期/时间格式读取输入数据。 16 是宽度。有很多信息,以长度、小数等为条件。

    而且,日期(__ToDate, __FromDate)是否有数字类型? (它们的缺失值是点 .,而不是引号 "")?

    在 SAS 中,字符类型的缺失值被赋予双引号 ""。对于数字类型,它是点.。日期/时间被视为数字类型。

    【讨论】:

    • 我不同意信息格式有三种变体(数字、字符和日期时间)的说法。实际上只有创建数字的信息和创建字符变量的信息。我可以基于导入数值(例如 3 -> 三)创建字符变量,或者基于将信息应用于字符串(例如三 -> 3)创建数值变量。信息只是确定输入源必须采用什么格式(无论是字符串还是数字)才能成功导入。在 SAS 中,日期和时间仅存储为数字变量。
    • 在 SAS 中确实将日期和时间存储为数字变量。正如我所提到的,它们共享相同的类型。但是,日期/时间信息采用与数字变量不同的形式。例如,一个典型的数字信息是 comma10.2,它控制整数 (10) 和小数部分 (2) 的宽度,但对于日期/时间,信息就像 mmddyy10.,完全不同。详情请参阅support.sas.com/publishing/pubcat/chaps/59498.pdf
    • 我同意您的 cmets 中的所有内容,但我认为您可能误解了我要表达的观点。我的观点是,信息只是告诉 SAS 如何解析字符串以便将其转换为 SAS 变量。有简单的信息。例如,我可以创建一个读取字符串、数字和日期的单一信息,并将它们全部转换为我选择的某个值。例如。 invalue trial 'A'-'M'=1 'N'-'Z'=2 1-3000=3;
    【解决方案2】:

    信息是 SAS 用来将数据值读入变量的指令。 (INFORMAT Statement)

    信息通常用于从称为平面文件的外部文件中读取或输入数据 (文本文件、ASCII 文件或顺序文件)。您还可以在 DATA 步内的 INPUT 函数中使用信息。该信息指示 SAS 如何将数据读入 SAS 变量。 (Introduction to SAS Informats and Formats)

    在 SAS 中只有两种类型的变量 - 字符和数字。但是,可以为变量分配许多 INFORMATS 中的任何一种。我不相信 INFORMAT 是相关的,除非正在使用 INPUT 语句/函数。

    【讨论】:

      【解决方案3】:

      关于 INFORMATS 的附加评论;它们还与访问数据集的交互式工具一起使用(特别是 VIEWTABLE 应用程序,它允许人们从 SAS 会话中编辑数据集)。

      例如,假设您的变量是使用“date9”的 INFORMAT 定义的。和“mmddyy10.”的格式。如果您使用 VIEWTABLE 编辑数据集并在列中输入“18apr2012”,SAS 将接受该日期并将其显示为“04/18/2012”。

      请记住,INFORMATS 和 FORMATS 是 SAS 变量的不同“属性”,可以随时修改。 FORMATS 也可以被带有 FORMAT 语句的各种过程“覆盖”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-15
        • 2015-08-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多