楼主: bluemoon1
3140 6

[原创博文] 求助:format后为什么有缺失值? [推广有奖]

  • 0关注
  • 0粉丝

本科生

40%

还不是VIP/贵宾

-

威望
0
论坛币
1248 个
通用积分
0
学术水平
1 点
热心指数
2 点
信用等级
0 点
经验
833 点
帖子
70
精华
0
在线时间
44 小时
注册时间
2005-6-8
最后登录
2015-1-13

楼主
bluemoon1 发表于 2010-6-5 19:58:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
proc format;
value pdfmt
low-0    = 'A. 0                  '
0<-1     = 'B. <1yr              '
1<-3     = 'C. 1-<3 years      '
3<-5     = 'D. 3-<5 years      '
5<-10   = 'E. 5-<10 years     '
10-high = 'F. 10 years+        ';
run;

gp_job_period = put(job_period, pdfmt.);

proc freq data=lib.data;table gp_job_period;run;
                                                      累积       累积
                               gp_living_period            频数      百分比       频数      百分比
                               -------------------------------------------------------------------
                                                    .        1742      0.04         1742      0.04
                               A. 0                       3848605     91.69      3850347     91.73
                               B. <1yr                      39981      0.95      3890328     92.69
                               C. 1-<3 years                91799      2.19      3982127     94.87
                               D. 3-<5 years                57299      1.37      4039426     96.24
                               E. 5-<10 years               80058      1.91      4119484     98.15
                               F. 10 years+                 77791      1.85      4197275    100.00
                                                         频数缺失 = 1816

为什么出现了“. ”和频数缺失呢?谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:format FORMA form For Mat

回帖推荐

pobel 发表于6楼  查看完整内容

如果只是用 gp_job_period = put(job_period, pdfmt.); 个人认为不应该同时出现“. ”和频数缺失。 如果用到了 options missing=" "; 则不会有“.”这一行; 如果没用到options missing=" "; 则缺失值在put函数之后对应的变量gp_job_period会是“ .”,这样就不会有频数缺失了。 如果数据中有 .a, .z 之类的特殊缺失值,那么输出里面也不会是“.”, 而是 "A", "Z".

本帖被以下文库推荐

沙发
jingju11 发表于 2010-6-5 20:43:21
1# bluemoon1

SORRY.不知道为什么。如果只是要用在freq里,也许可以考虑
  1. proc freq;
  2.    tables job_period;
  3.    format job_period pdfmt.;
  4. run;
复制代码
无须设置新变量
已有 1 人评分热心指数 收起 理由
crackman + 1 精彩帖子

总评分: 热心指数 + 1   查看全部评分

藤椅
nkwilling 发表于 2010-6-5 21:20:12
format确实存在这个问题,我以前做ETL的时候就遇到过。你可以在Proc format 的value中再加一个关键字other,即:
proc format;
value ... ;
...;
other=..;
run;

试一试,有问题再反馈,我临时想的,没有测试。

板凳
bobguy 发表于 2010-6-5 23:01:37
bluemoon1 发表于 2010-6-5 19:58

The following program illustrates when the missing from.

proc format;
value pdfmt
low-0    = 'A. 0                  '
0
4    proc format;
5    value pdfmt
6    low-0    = 'A. 0                  '
7    0<-1     = 'B. <1yr              '
8    1<-3     = 'C. 1-<3 years      '
9    3<-5     = 'D. 3-<5 years      '
10   5<-10   = 'E. 5-<10 years     '
11   10-high = 'F. 10 years+        ';
NOTE: Format PDFMT has been output.
12   run;

NOTE: PROCEDURE FORMAT used (Total process time):
      real time           0.28 seconds
      cpu time            0.03 seconds


13
14   data t1;
15      do i=.a,.z,.,-100,0 to 12;
16      put i = i= pdfmt.;
17     end;
18   run;

i=A i=A
i=Z i=Z
i=. i=.
i=-100 i=A. 0
i=0 i=A. 0
i=1 i=B. <1yr
i=2 i=C. 1-<3 years
i=3 i=C. 1-<3 years
i=4 i=D. 3-<5 years
i=5 i=D. 3-<5 years
i=6 i=E. 5-<10 years
i=7 i=E. 5-<10 years
i=8 i=E. 5-<10 years
i=9 i=E. 5-<10 years
i=10 i=E. 5-<10 years
i=11 i=F. 10 years+
i=12 i=F. 10 years+
NOTE: The data set WORK.T1 has 1 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.29 seconds
      cpu time            0.01 seconds
已有 1 人评分学术水平 热心指数 收起 理由
crackman + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

报纸
pobel 在职认证  发表于 2010-6-7 08:49:26
gp_living_period            频数      百分比       频数      百分比
  -------------------------------------------------------------------

这里的gp_living_period 和gp_job_period是什么关系?

地板
pobel 在职认证  发表于 2010-6-7 08:58:05
如果只是用 gp_job_period = put(job_period, pdfmt.);  个人认为不应该同时出现“. ”和频数缺失。

如果用到了 options missing=" "; 则不会有“.”这一行;
如果没用到options missing=" "; 则缺失值在put函数之后对应的变量gp_job_period会是“    .”,这样就不会有频数缺失了。

如果数据中有 .a, .z 之类的特殊缺失值,那么输出里面也不会是“.”, 而是 "A", "Z".
已有 2 人评分经验 论坛币 学术水平 收起 理由
bakoll + 3 + 3 精彩帖子
论坛数据分析 + 100 + 1 观点有启发

总评分: 经验 + 3  论坛币 + 103  学术水平 + 1   查看全部评分

7
论坛数据分析 发表于 2011-1-14 17:06:31
可以把缺失数据都挑出来看看是怎么个情况
老夫聊发少年狂

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

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