楼主: Laughing06
2864 4

如何求某一变量当前观测值的最小值! [推广有奖]

  • 4关注
  • 0粉丝

大专生

65%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
499 点
帖子
37
精华
0
在线时间
51 小时
注册时间
2013-3-13
最后登录
2016-5-3

楼主
Laughing06 发表于 2014-5-20 21:53:58 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
变量A有N个观测值(数值型),我想得到一个新的变量B,使得B为A的当前观测值的最小值。
比如A有10个值,那么B1=A1;B2=min(of A1-A2),.....B9=min(of A1-A9),B10=min(of A1-A10).
请问如何实现?应该有相应的function吧?请提点一下小弟,感激涕零。
二维码

扫码加我 拉你入群

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

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

关键词:观测值 最小值 function 如何实现 感激涕零 如何

沙发
mingfeng07 学生认证  发表于 2014-5-20 22:51:39
  1. data b;
  2. input A;
  3. cards;
  4. 7
  5. 3
  6. 2
  7. 1
  8. 4
  9. ;
  10. run;
  11. %macro test(data,varname);
  12. proc sql;
  13. select count(*) into:count from &data;
  14. quit;
  15. data test(keep=&varname B);
  16. set &data;
  17. array aa{*} a1-a%sysfunc(compress(&count));
  18. aa(1)=&varname;
  19. do i=2 to &count.;
  20. aa(i)=lag(aa(i-1));
  21. end;
  22. B=min(of a1-a%sysfunc(compress(&count)));
  23. run;
  24. %mend;
  25. %test(b,A);
复制代码
欢迎扫一扫我头像关注, 不定期分享SAS技术知识。

藤椅
wwang111 发表于 2014-5-21 08:35:12
data a;
input a @@;
cards;
7 3 6 8 9 2 10 7 8 4
;

proc sql noprint;
select count(*) into: nobs
from a;
quit;

%macro sltmin;
%let n=%eval(&nobs-1);
data b;
set a;
b1=lag(a);
%do i=2 %to &n;
  b&i=lag&i(a);
%end;
b=min(of a -- b&n);
keep a b;
run;
%mend;
%sltmin
只有一个罗纳尔多

板凳
pobel 在职认证  发表于 2014-5-21 09:05:37
data b;
   set a;
   retain b;
   b=min(a,b);
run;
和谐拯救危机

报纸
jeozu 发表于 2014-5-21 09:30:06
两种算法,一种是按照排序的算法,不过只是用两值比较后最小值跟下一个比较,遍历一次。用data step的array做。
第二种是用sql的cartesian来做。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 06:47