全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1267 3
2013-05-15
悬赏 200 个论坛币 已解决
请问高手,这个程序步FORMAT variables <format><DEFAULT=default-format>;是什么意思?谢谢指点!1.为什么第一个format是大写,后面两个是小写。第一个default是大写,后面一个是小写。2.可以举出一个完整的实例来吗?

最佳答案

yongyitian 查看完整内容

FORMAT variable(s) ; 整句是 FORMAT 语句的语法格式 FORMAT ---- 大写的字是关键字 (keyword), 关键字是SAS指定的字, 必须有的, 不可缺少. 程序中关键字可以写成大写,也可以写成小写. variable(s), format, default-format --- 小写的字表示 FORMAT 语句的变量 (argument) 变量指定一个数字或字符常量,变量或表达式 这里的 vari ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-5-15 02:28:23
FORMAT variable(s) <format><DEFAULT=default-format>;
整句是 FORMAT 语句的语法格式

FORMAT ---- 大写的字是关键字 (keyword), 关键字是SAS指定的字, 必须有的, 不可缺少.
                    程序中关键字可以写成大写,也可以写成小写.

variable(s), format, default-format ---  小写的字表示 FORMAT 语句的变量 (argument)
                                                           变量指定一个数字或字符常量,变量或表达式

这里的 variable(s)         是指数据集中的变量  
这里的  format              是指要设定的格式
这里的 default-format  是指要设定一个临时的默认格式, 因为在 <  > 中,所以是可有可无的.

< **** > ---- 三角括号内的内容是可选项,可有可无. 三角括号外是必须有的.

variable(s) --- 中的(s)表示可以有多个数据集变量

DEFAULT=default-format --- 指定一个临时的默认格式显示FORMAT语句中列出的变量的值。这些默认格
式仅适用于当前数据步骤.    详细请见 http://v8doc.sas.com/sashtml/lgref/z0178212.htm

example
format   date_in date_out  yymmdd10.;      /* 定义变量 date_in, date_out 的格式为 yymmdd10. */
   ^           ^           ^                ^
   |             |            |                  |
关键字   变量1   变量2    使用的格式
  小写

yymmdd10. 格式将日期表示为 2013-05-04 的形式

8    data test;
9    format date_in date_out yymmdd10.;
10      date_in= today();
11      date_out = today() +5;
12      put date_in=;
13      put date_out=;
14   run;
date_in=2013-05-14
date_out=2013-05-19



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-15 19:55:33
您好,yongyitian!我还是不明白:1.、前面有FORMAT,后面为什么还要format。2.“这里的 default-format  是指要设定一个临时的默认格式,”,什么是临时的默认格式。谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-15 21:19:28
lnlhckao123 发表于 2013-5-15 19:55
您好,yongyitian!我还是不明白:1.、前面有FORMAT,后面为什么还要format。2.“这里的 default-format  是 ...
前面的FORMAT用来表示FORMAT语句的开始。比如一个数据步用data开始一样。
格式语句的第一个字是 format (大小写都可以)。 过程步的第一个字是 proc .

比如 format date_in yymmdd10.;  

因为第一个字是 format,  所以它表示一个格式语句. 上面语句的中的 ; 表示语句的结束.

后面的format是说要在这个字的地方(变量名的后面)写一个具体的格式,比如一个日期格式 yymmdd10.  或者长度为1的字符格式 $1.

注意: 格式最后的 .  是必须要有的.

临时的默认格式仅适用于当前数据步骤 : 说的是这个格式不会储存在数据集中。 也就是说下次调用这个数据集时, 或者用 proc print 打印时, 临时的默认格式就不存在了.


比如运行下面code后, 你会在log window 中看到 date_out 的格式是 yymmdd10. (因为是在数据步里)
而在result window (在数据步外)里, 你看到的date_out 的数值是从1960-01-01 到今天的天数.

data test;
   format date_in yymmdd10.;
   format date_put default=yymmdd10.;
   date_in = today();
   date_out = today()+5;
   put date_in=;
   put date_out=;
run;
proc print data=test; run;

SAS 帮助文件里的句法(syntax)确实很难懂. 只要照着例子写就可以了.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群