SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 902|回复: 9
打印 上一主题 下一主题

如何根据数据集aaa中变量的顺序 对var进行排序

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-4-11 09:53:03 | 只看该作者

如何根据数据集aaa中变量的顺序 对var进行排序

data aaa;
input id a b c;
cards;
1 1 2 3
2 2 3 4
3 4 5 6
;
run;

data bbb;
input id var$ value;
cards;
1 b 1
1 a 1
1 c 3
2 c 1
2 a 2
;
run;

/*如何根据数据集aaa中变量的顺序 对var进行排序*/
want:
id var value
1 a 1
1 b 1
1 c 3
2 a 2
2 c 1
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-4-11 10:32:40 | 只看该作者

Re: 如何根据数据集aaa中变量的顺序 对var进行排序

SAS新人 请多指教
*****************************************
proc sort data=bbb;
by id;
run;

proc sort data=aaa;
by id;
run;

data test;
merge bbb(in=ina) aaa;
by id;
if var='a' then sort=a;
else if var='b' then sort=b;
else if var='c' then sort=c;
if ina;
drop a b c;
run;

proc sort data=test;
by id sort;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-4-11 13:21:53 | 只看该作者

Re: 如何根据数据集aaa中变量的顺序 对var进行排序

你的,是要这个吗?

data aaa;
input id a b c;
cards;
1 1 2 3
2 2 3 4
3 4 5 6
;
run;
proc transpose data=aaa out=bbb(rename=(_NAME_=var COL1=value));
var a b c;
by  id;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-4-11 13:53:09 | 只看该作者

Re: 如何根据数据集aaa中变量的顺序 对var进行排序

不是 目的是如何根据数据集aaa中变量的顺序 对数据集bbb中var的值进行排序 最好程序能通用化
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2009-4-11 18:45:49 | 只看该作者

Re: 如何根据数据集aaa中变量的顺序 对var进行排序

data bbb(keep=id var value s);
set bbb;
a=1; b=2; c=3;
s= vvaluex(var);
run;
proc sort data=bbb out=ccc;
by id s;
run;

ps:题目意思完全靠猜。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2009-4-11 19:08:06 | 只看该作者

Re: 如何根据数据集aaa中变量的顺序 对var进行排序

data aaa;
input id a b c d;
cards;
1 9 10 11
2 22 34 15
;
run;
数据集aaa中变量的顺序是 id a b c
先对数据集中id进行排序,然后根据id a b c这个顺序对数据集bbb中var的变量值进行排序
data bbb;
input id var$ value;
cards;
1 b 1
1 a 1
1 c 3
2 c 1
2 a 2
;
run;

want:
id var value
1 a 1
1 b 1
1 c 3
2 a 2
2 c 1
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2009-4-11 19:10:18 | 只看该作者

Re: 如何根据数据集aaa中变量的顺序 对var进行排序

谢谢 变量很多时 写a=1; b=2; c=3;会很多!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2009-4-11 20:54:28 | 只看该作者

Re: 如何根据数据集aaa中变量的顺序 对var进行排序

有几个变量?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2009-4-11 20:55:56 | 只看该作者

Re: 如何根据数据集aaa中变量的顺序 对var进行排序

[code:l50yucw5]data aaa;
input id a b c;
cards;
1 1 2 3
2 2 3 4
3 4 5 6
;
run;

data bbb;
input id var$ value;
cards;
1 b 1
1 a 1
1 c 3
2 c 1
2 a 2
;
run;

data ccc(keep=id v ord);
  set aaa;
  array arr a b c;
  do over arr;
  v=vname(arr);
  ord=arr;
  output;
  end;
run;



proc sql;
  create table ddd(drop=ord) as
  select bbb.id, var, value,ord
  from bbb left join ccc
    on bbb.id=ccc.id and bbb.var=ccc.v
  order by id, ord
  ;[/code:l50yucw5]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2009-4-11 21:45:46 | 只看该作者

Re: 如何根据数据集aaa中变量的顺序 对var进行排序

macro
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 12:22 , Processed in 0.260778 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表