楼主: Tigflanker
4515 4

[问答] 关于Format Function [推广有奖]

  • 8关注
  • 18粉丝

副教授

49%

还不是VIP/贵宾

-

威望
0
论坛币
2321 个
通用积分
9.9128
学术水平
179 点
热心指数
194 点
信用等级
167 点
经验
27443 点
帖子
622
精华
0
在线时间
851 小时
注册时间
2011-3-27
最后登录
2023-5-14

楼主
Tigflanker 发表于 2014-10-8 17:55:04 |AI写论文
30论坛币
SAS是一门充满想象力的语言。

我觉得应该会有个函数用来判断某个值(宏变量)是否是有效的format,于是我找到了Format Function。
Link:http://support.sas.com/documenta ... 6n1pph9c5iuxxcu.htm

用法就是:rc=FORMAT(format,type);

  1. %macro a;
  2. data _null_;
  3.   rc = format('5.3','n');
  4.   put rc=;
  5. run;

  6. %let rc = %sysfunc(format('5.3','n'));
  7. %put &rc.;

  8. %mend;
  9. %a;
复制代码

没用成功,不知道混淆了什么地方;
望用过的朋友给与明示,谢谢 : - )

另外,这不是版本的问题,这个function我在9.1.3的help文档中就有找到,9.2的SAS也没运行成功。

最佳答案

yongyitian 查看完整内容

如上面连接所示 format()是 SAS Components Language 中的一个函数。 SAS Components Language (缩写: SCL) 是SAS内部的另一种语言。就好像data step和SAS Macro是两种不同的语言一样。 Data step 和 SAS Macro Language 中并没有 format() 这个函数. 所以不能在data step中使用. SAS SCL (组件语言)是一种编程语言,用作 SAS 系统的交互式应用程序的开发. 例如,可以使用SCL与其他SAS软件来创建数据输入应用程序 ...
关键词:function format FORMA form For function 想象力 null 朋友
Bye SAS.
若有缘,能重聚。

沙发
yongyitian 发表于 2014-10-8 17:55:05
如上面连接所示 format()是 SAS Components Language 中的一个函数。

SAS Components Language (缩写: SCL) 是SAS内部的另一种语言。就好像data step和SAS Macro是两种不同的语言一样。

Data step 和 SAS Macro Language 中并没有 format() 这个函数. 所以不能在data step中使用.

SAS SCL (组件语言)是一种编程语言,用作 SAS 系统的交互式应用程序的开发.

例如,可以使用SCL与其他SAS软件来创建数据输入应用程序,显示表和菜单,并生成和提交SAS源代码。

SAS第7版以前,SAS组件语言被称为SAS屏幕控制语言(Screen Control Language)。

已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Tigflanker + 5 + 3 + 3 + 3 热心帮助其他会员

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

藤椅
Tigflanker 发表于 2014-10-13 09:22:04
顶下自贴,已经沉到龙王殿了。。

板凳
Tigflanker 发表于 2014-10-13 14:47:12
yongyitian 发表于 2014-10-13 10:51
如上面连接所示 format()是 SAS Components Language 中的一个函数。

SAS Components Language (缩写 ...
谢谢。

另外想多问一句,像 ATTRC and ATTRN 也属于 SAS Component Language Dictionary

我们平时也有用过sysfunc(attrc(tableid,'MODE'))这般,不知道这个format应该在哪儿用。

报纸
yongyitian 发表于 2014-10-14 09:38:57
Tigflanker 发表于 2014-10-13 14:47
谢谢。

另外想多问一句,像 ATTRC and ATTRN 也属于 SAS Component Language Dictionary
SAS SCL语言支持除了dif和lag以外的所有BASE SAS语言的函数. 也就是说几乎所有BASE SAS的函数都可以在SAS SCL里使用。 

在 Base SAS Language 和 SAS SCL Language 中都有 ATTRC and ATTRN 函数.

感觉 %sysfunc()调用的应该是 Base SAS 中的函数. 但是不清楚如何从 data step 调用 SAS SCL 的函数.


Base SAS 中的 ATTRC and ATTRN 函数
http://support.sas.com/documenta ... .htm#a000147794.htm

SAS SCL 中的 ATTRC and ATTRN 函数
http://support.sas.com/documenta ... .htm#a000143464.htm
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Tigflanker + 5 + 3 + 3 + 3 恩,谢谢。

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

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

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