楼主: lnlhckao123
1299 3

[问答] 200论坛币请问sas程序解释 [推广有奖]

  • 0关注
  • 3粉丝

副教授

62%

还不是VIP/贵宾

-

威望
0
论坛币
14810 个
通用积分
10.6125
学术水平
7 点
热心指数
4 点
信用等级
4 点
经验
12566 点
帖子
754
精华
0
在线时间
405 小时
注册时间
2010-8-21
最后登录
2025-6-7

楼主
lnlhckao123 发表于 2013-5-15 02:28:22 |AI写论文
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 ...
关键词:200论坛币 sas程序 0论坛币 论坛币 Variables 程序 论坛
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

沙发
yongyitian 发表于 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



已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
lnlhckao123 + 3 + 3 + 3 热心帮助其他会员
Imasasor + 100 + 100 + 4 + 4 鼓励积极发帖讨论

总评分: 经验 + 100  论坛币 + 100  学术水平 + 7  热心指数 + 7  信用等级 + 3   查看全部评分

藤椅
lnlhckao123 发表于 2013-5-15 19:55:33
您好,yongyitian!我还是不明白:1.、前面有FORMAT,后面为什么还要format。2.“这里的 default-format  是指要设定一个临时的默认格式,”,什么是临时的默认格式。谢谢!
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

板凳
yongyitian 发表于 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)确实很难懂. 只要照着例子写就可以了.

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 12:45