楼主: lnlhckao123
1191 8

[问答] 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 21:08:24 |AI写论文
200论坛币
请问高手,我的程序如下,我在data aaa 步中,在age后增加一个age-group,但当运行data aaa2 后age-group会变成第一个变量,我还是想让age-group这个变量位于age之后,这该怎样解决?谢谢指点!!

data aaa;
set bbb(obs=0 keep=cardno--age);
age_group=" ";
set bbb(obs=0 keep=ca--zn2);
run;

proc append base=aaa  data=bbb;
run;


data aaa2;
format age_group $4.;
    set aaa;
        if age =0 then Age_group="0 ";
        if age in (1) then Age_group="1 ";
        if age in (2) then Age_group ="2 ";
        if age in (3) then Age_group ="3 ";
        if age in (4) then Age_group ="4 ";
        if age in (5) then Age_group ="5 ";
        if age =6 then Age_group ="6 ";
        if age > 6 then Age_group=">6";
run;





最佳答案

yongyitian 查看完整内容

试试在 data aaa; 中定义 format data aaa; set bbb(obs=0 keep=cardno--age); age_group=" "; set bbb(obs=0 keep=ca--zn2); format age_group $4.; run;
关键词:200论坛币 sas程序 0论坛币 论坛币 append 程序 论坛
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

沙发
yongyitian 发表于 2013-5-15 21:08:25
试试在 data aaa; 中定义 format

data aaa;
set bbb(obs=0 keep=cardno--age);
age_group=" ";
set bbb(obs=0 keep=ca--zn2);
format age_group $4.;
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
lnlhckao123 + 3 + 3 + 3 热心帮助其他会员

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

藤椅
zhou.wen 发表于 2013-5-15 21:13:53
  1. length age 8 age_group $4;
复制代码
已有 1 人评分热心指数 收起 理由
lnlhckao123 + 2 热心帮助其他会员

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

Practice Is The Best Teacher!

板凳
lnlhckao123 发表于 2013-5-15 21:19:39
谢谢zhou.wen,可是运行您给的程序后,age变成第一个变量,age-group变成第二个变量,不是在原位置上,还望继续指点!
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

报纸
zhou.wen 发表于 2013-5-15 21:25:09
事实上没有必要纠结在变量的排序中,因为data step产生的数据只是用来存储你的数据而不是用于输出,所以变量的位置并不重要
如果要输出数据,比如proc print的时候
你可以在var statment中按你希望的顺序列出变量
Practice Is The Best Teacher!

地板
邓贵大 发表于 2013-5-15 21:28:23
楼主真刻苦!受教了!
Be still, my soul: the hour is hastening on
When we shall be forever with the Lord.
When disappointment, grief and fear are gone,
Sorrow forgot, love's purest joys restored.

7
zhou.wen 发表于 2013-5-15 21:28:59
format statment语句导致了age_group变量变成第一位,你可以去掉format statment
但是你要age_group的赋值语句中保留足够多的空格,防止数据被截断,如
  1. data aaa2;
  2. set aaa;
  3. if age =0 then Age_group="0   ";
  4. if age in (1) then Age_group="1   ";
  5. if age in (2) then Age_group ="2   ";
  6. if age in (3) then Age_group ="3   ";
  7. if age in (4) then Age_group ="4   ";
  8. if age in (5) then Age_group ="5   ";
  9. if age =6 then Age_group ="6   ";
  10. if age > 6 then Age_group=">6  ";
  11. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
lnlhckao123 + 2 + 2 + 2 热心帮助其他会员

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

Practice Is The Best Teacher!

8
lnlhckao123 发表于 2013-5-15 21:57:38
谢谢yongyitian!按您的程序真得可以做出我的要求!我原本学术分给5分,但我今天只剩8分,故只给3分,真感觉您的强大,像crackman一样!
即使在人大经济论坛这个网络世界,我仍以真诚为基础与我的好友进行交往!

9
naruto_zw 发表于 2013-5-16 19:13:37
zhou.wen 发表于 2013-5-15 21:25
事实上没有必要纠结在变量的排序中,因为data step产生的数据只是用来存储你的数据而不是用于输出,所以变量 ...
原来proc print中可以用var来控制变量顺序,学习了

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

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