楼主: dandan_9075
2862 27

[原创博文] 怎么让输出结果不留空 [推广有奖]

  • 3关注
  • 2粉丝

硕士生

52%

还不是VIP/贵宾

-

威望
0
论坛币
21 个
通用积分
2.5503
学术水平
1 点
热心指数
4 点
信用等级
1 点
经验
1215 点
帖子
134
精华
0
在线时间
110 小时
注册时间
2012-3-12
最后登录
2024-1-2

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
这个是我按照urban和age分类后输出的y的值,其中urban的取值有十几个,表示不同的城市,age表示年龄阶段,一共有5个年龄阶段;当然这只是结果的一部分

urban

age

y

1

4

6

 

5

2

 

1

60

 

2

7

 

3

3

2

2

4

 

3

9

3

3

20

 

4

2

 

2

1


我现在想把结果输出为

urban

age

y

1

1

60

1

2

7

1

3

3

1

4

6

1

5

2

2

1

0

2

2

4

2

3

9

2

4

0

2

5

0

3

1

0

3

2

1

3

3

20

3

4

2

3

5

0


也就是最后一个小分类y的取值为0,我希望这个时候结果页输出y的值,还有前面的urban这个变量,在结果部分都要输出来,不要在后面留空,请问这种要求可以实现么?
二维码

扫码加我 拉你入群

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

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

关键词:输出结果 Urban 年龄阶段 最后一个 结果输出

回帖推荐

ntsean 发表于9楼  查看完整内容

我来无聊一把 data test; input urban age y; datalines; 1 4 6 . 5 2 . 1 60 . 2 7 . 3 3 2 2 4 . 3 9 3 3 20 . 4 2 . 2 1 ; run; data test1; retain urbanr; set test; if urban ne . then urbanr=urban; else urban=urbanr; drop urbanr; run; proc sort data=test1; by urban age; run; data test2; set test1; by urban; if first.urban then do; do age=1 ...

本帖被以下文库推荐

沙发
yancong529 发表于 2012-5-8 20:28:53 |只看作者 |坛友微信交流群
我只懂Excel,用Excel不妨的话,联系我
醉舞经阁半卷书,坐井谈天阔

使用道具

藤椅
pl172231 发表于 2012-5-8 21:07:07 |只看作者 |坛友微信交流群
希望您把您写的程序贴出来,我个人的经验是sas不会输出您的这种数据集

使用道具

板凳
dandan_9075 在职认证  发表于 2012-5-8 23:33:40 |只看作者 |坛友微信交流群
pl172231 发表于 2012-5-8 21:07
希望您把您写的程序贴出来,我个人的经验是sas不会输出您的这种数据集
我写的程序很简单,如下:
proc means data=a sum;                                                                                                   
  var y;                                                                                                                              
  class  urban age;                                                                                                               
run;                                                                                                                                 
         

使用道具

报纸
dandan_9075 在职认证  发表于 2012-5-8 23:34:57 |只看作者 |坛友微信交流群
yancong529 发表于 2012-5-8 20:28
我只懂Excel,用Excel不妨的话,联系我
excel是不是要手动一个一个地操作?

使用道具

地板
yancong529 发表于 2012-5-8 23:39:50 |只看作者 |坛友微信交流群
dandan_9075 发表于 2012-5-8 23:34
excel是不是要手动一个一个地操作?
of course 不需要
醉舞经阁半卷书,坐井谈天阔

使用道具

7
yancong529 发表于 2012-5-8 23:42:35 |只看作者 |坛友微信交流群
dandan_9075 发表于 2012-5-8 23:34
excel是不是要手动一个一个地操作?
要用数据透视表,没法详细说明,不介意的话,发到我邮箱,弄好了两个币卖给你怎么样?
yancong_529@163.com
醉舞经阁半卷书,坐井谈天阔

使用道具

8
pl172231 发表于 2012-5-8 23:59:03 |只看作者 |坛友微信交流群
dandan_9075 发表于 2012-5-8 23:33
我写的程序很简单,如下:
proc means data=a sum;                                                   ...
你的数据集如果名字没搞错的话,就把我的代码跑一下,会生成一个叫kkk的数据集,你自己看
ods output summary=kkk;
proc sort data=a sum;
by urban age;
run;
proc means data=a sum;                                                                                                   
  var y;                                                                                                                              
  by  urban age;                                                                                                               
run;                       

使用道具

9
ntsean 发表于 2012-5-9 00:21:12 |只看作者 |坛友微信交流群
我来无聊一把

data test;
input urban age y;
datalines;
1 4 6
. 5 2
. 1 60
. 2 7
. 3 3
2 2 4
. 3 9
3 3 20
. 4 2
. 2 1
;
run;

data test1;
  retain urbanr;
  set test;
  if urban ne . then urbanr=urban;
    else urban=urbanr;
  drop urbanr;
run;

proc sort data=test1;
  by urban age;
run;

data test2;
  set test1;
  by urban;
  if first.urban then do;
     do age=1 to 5;
           y=0;
           output;
        end;
  end;
run;

data final;
  merge test2 test1;
  by urban age;
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

使用道具

10
kai0456 发表于 2012-5-9 03:07:19 |只看作者 |坛友微信交流群
看起来非常好用

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 12:25