楼主: 2286116865
4576 13

[问答] 请问以下proc format程序为什么没能更改输出格式?哪里出错了呢? [推广有奖]

  • 2关注
  • 4粉丝

已卖:207份资源

讲师

16%

还不是VIP/贵宾

-

威望
0
论坛币
373 个
通用积分
1.9084
学术水平
1 点
热心指数
6 点
信用等级
1 点
经验
7033 点
帖子
294
精华
0
在线时间
294 小时
注册时间
2015-5-3
最后登录
2025-12-9

楼主
2286116865 发表于 2016-7-27 11:43:39 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
libname fmt"e:\fmt";    /*这是自己建立的数据库,打算用来存储格式*/                                                                            
proc format library=fmt;                                                                                                               
value sexfmt      /*value name 中的name是按规则自己取吧?*/                                                                                                      
1='女'                                                                                                                                 
2='男';                                                                                                                                 
data one;                                                                                                                              
infile"C:\Users\Administrator\Desktop\练习用.txt" dlm="" missover;                                                                     
input no name$ sex rank age;                                                                                                            
proc print data=one;                                                                                                                    
format sex sexfmt.;    /*log中提示: The format SEXFMT was not found or could not be loaded。*/                                              
run;
原数据集中sex的值为1和2,分别代表男生和女生,但是运行程序后sex的取值仍然为1和2,并没有应为proc format语句改变,大家帮我看看吧?这个问题该如何处理?先谢谢了!                                                                                                                                   



二维码

扫码加我 拉你入群

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

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

关键词:format 哪里出错了 FORMA form 输出格式 library 数据库 程序

回帖推荐

wwang111 发表于7楼  查看完整内容

首先,你把sexfmt这个format存放到了fmt下面,在程序运行过程当中,需要用到format的时候,会首先在work里面找这个format,如果没有,会在library里面找(这个library是sas默认的),如果都找不到,log里就会提示没有这个format; 如果定义了option fmtsearch=(fmt) ,需要format,首先还是会在work里面找,然后是library,如果都没有,就会在fmt里面找,所以加上这个option你的程序就会成功运行; 如果想让format最先在fmt里 ...

沙发
suzhzh 发表于 2016-7-27 13:19:25
you should make sure this format is present in the WORK library. You just stored in the fmt library. Thanks
已有 1 人评分论坛币 收起 理由
admin_kefu + 15 热心帮助其他会员

总评分: 论坛币 + 15   查看全部评分

藤椅
Arithmetic09 发表于 2016-7-27 14:11:33
需要先告诉SAS从那个Library里面查找格式。可以加上如下语句:
Option fmtsearch=(fmt);
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

板凳
2286116865 发表于 2016-7-27 14:36:29
suzhzh 发表于 2016-7-27 13:19
you should make sure this format is present in the WORK library. You just stored in the fmt library. ...
so,how can i present the format to the work library?
by the way: should the format be in work library? i have already store it in fmt library, then i just invoking the format from it?

报纸
2286116865 发表于 2016-7-27 14:40:49
Arithmetic09 发表于 2016-7-27 14:11
需要先告诉SAS从那个Library里面查找格式。可以加上如下语句:
Option fmtsearch=(fmt);
还是不太明白,程序中已经在format sex sexfmt.难道不是应用之前proc format定义的格式吗?

地板
2286116865 发表于 2016-7-27 14:42:43
suzhzh 发表于 2016-7-27 13:19
you should make sure this format is present in the WORK library. You just stored in the fmt library. ...
so how can i prescent the format to the work library? thank u

7
wwang111 发表于 2016-7-27 15:24:44
首先,你把sexfmt这个format存放到了fmt下面,在程序运行过程当中,需要用到format的时候,会首先在work里面找这个format,如果没有,会在library里面找(这个library是sas默认的),如果都找不到,log里就会提示没有这个format;

如果定义了option fmtsearch=(fmt) ,需要format,首先还是会在work里面找,然后是library,如果都没有,就会在fmt里面找,所以加上这个option你的程序就会成功运行;

如果想让format最先在fmt里面找,那样可以写成option fmtsearch=(fmt work library);.
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
admin_kefu + 30 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 30  学术水平 + 2  热心指数 + 2   查看全部评分

8
2286116865 发表于 2016-7-27 16:35:40
wwang111 发表于 2016-7-27 15:24
首先,你把sexfmt这个format存放到了fmt下面,在程序运行过程当中,需要用到format的时候,会首先在work里面 ...
老师,谢谢,前两点我应该是明白了,但对于第三点:sexfmt这个格式我存储在了fmt这个永久数据集下面,option fmtsearch=(fmt work library)中的work library是临时数据库的意思吗?如果是的话就有点不理解了

9
2286116865 发表于 2016-7-27 17:12:40
2286116865 发表于 2016-7-27 16:35
老师,谢谢,前两点我应该是明白了,但对于第三点:sexfmt这个格式我存储在了fmt这个永久数据集下面,opt ...
我刚刚去查了下 资料,原来括号里的表示顺序,太感谢了老师!!!

10
wwang111 发表于 2016-7-27 17:16:34
fmtsearch=(fmt work library), 这样写只是保证遇到format,首先可以从你自己定义的存储位置去寻找,而不是先从work和library里面去找,括号里只是一个顺序,跟是不是临时数据库没有关系

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 14:38