楼主: fyfzhdsfdx
4079 6

sas实现指定条件的观测值 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

0%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
966 点
帖子
97
精华
0
在线时间
89 小时
注册时间
2012-8-22
最后登录
2016-9-24

楼主
fyfzhdsfdx 发表于 2013-11-4 21:14:52 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
急求高手利用sas实现如下问题:
假设有50个数据集a1,a2,...,a50(这50个数据集的变量相同,观测值个数相同),想根据另外对应的的50个数据集p1,p2,...,p50(只有一个观测)的一个变量的取值来获得数据集a1,a2,...,a50的排序后的对应观测。比如利用数据集数据集p1的变量order的取值假设为100,那么想得到数据集a1排序(从小到大)后的第100个观测;数据集数据集p2的变量order的取值假设为556,那么想得到数据集a2排序(从小到大)后的第556个观测;以此类推。。。
或者假设有50个数据集a1,a2,...,a50(这50个数据集的变量相同,观测值个数相同),另外的一个数据集b(50个观测),想根据数据集b变量order的第一个取值b1获得数据集a1排序(从小到大)后的第b1个观测;根据数据集b变量order的第二个取值b2获得数据集a2排序(从小到大)后的第b2个观测;以此类推。。。。
十分感谢!
二维码

扫码加我 拉你入群

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

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

关键词:观测值 Order 从小到大 数据集 der

沙发
yongyitian 发表于 2013-11-5 10:48:33
  1. %macro combine;
  2.    %do i = 1 %to 50;
  3.       data temp;
  4.         if _n_ = 1 then do;
  5.         set p&i; p=order;
  6.          end;
  7.         set a&i point=p; output;
  8.          stop;
  9.       run;            
  10.        proc append base = combine  data=temp;
  11.        run;
  12.     %end;
  13. %mend combine;

  14. %combine;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Tigflanker + 1 + 1 + 1 观点有启发

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

藤椅
420948492 发表于 2013-11-5 22:28:07 来自手机
通过宏实现即可

板凳
fyfzhdsfdx 发表于 2013-11-14 22:41:50
yongyitian 发表于 2013-11-5 10:48
成功实现,十分感谢,嘿嘿。。。sas的set语句真是强大啊。

报纸
Tigflanker 发表于 2013-11-15 10:07:49
yongyitian 发表于 2013-11-5 10:48
Hello, 大神

我想请教下,proc append和set语句有什么区别啊?append过程有什么特别之处吗?
Bye SAS.
若有缘,能重聚。

地板
yongyitian 发表于 2013-11-15 11:10:36
Tigflanker 发表于 2013-11-15 10:07
Hello, 大神

我想请教下,proc append和set语句有什么区别啊?append过程有什么特别之处吗?
Hi,

proc append base=dataset1 data=dataset2;
run;

data dataset1;
    set dataset1 dataset2;
run;

这两种方法应该得到同样得结果. 即把dataset2叠加在 base 数据集dataset1后面.

记得是 Proc append 不读入 base 数据集,而直接把dataset2 叠加在base数据集的后面.

如果proc append 的 base 数据集不存在话, SAS会创建一个.

7
Tigflanker 发表于 2013-11-15 14:30:17
yongyitian 发表于 2013-11-15 11:10
Hi,

proc append base=dataset1 data=dataset2;
如果proc append 的 base 数据集不存在话, SAS会创建一个.

这个省去判断了,很有用,谢谢!
Bye SAS.
若有缘,能重聚。

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

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