楼主: cherrystrawbery
3137 13

[原创博文] 请教均值计算 [推广有奖]

  • 1关注
  • 2粉丝

大专生

83%

还不是VIP/贵宾

-

威望
0
论坛币
4 个
通用积分
0.1020
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
843 点
帖子
61
精华
0
在线时间
47 小时
注册时间
2010-5-31
最后登录
2020-6-29

楼主
cherrystrawbery 发表于 2012-2-22 23:24:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
数据表data,含有两列x和y,对应x的1、2、3、4、5求y均值,2、3、4、5、6求y均值,3、4、5、6、7求y均值,以此类推……分别求y的均值
x      y
1      1.5
2      2.5         
3      3.5
4      4.5
5      3.5
6      6.5
7      7.5
8      5.5
9      6.5
10    8.5
11    2.5
12    3.5
小弟sas刚入门,真心不知道怎么编代码,求sas牛人指教。
二维码

扫码加我 拉你入群

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

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

关键词:Data 不知道 数据表 数据表

回帖推荐

yugao1986 发表于2楼  查看完整内容

data test; input x y; cards; 1 1.5 2 2.5 3 3.5 4 4.5 5 3.5 6 6.5 7 7.5 8 5.5 9 6.5 10 8.5 11 2.5 12 3.5 ; run; proc expand data=test out=need ; convert y=mean5/method=none transformout=(movave 5); run; data need; set need; if x

本帖被以下文库推荐

沙发
yugao1986 发表于 2012-2-23 09:41:19
data test;
   input x y;
cards;
1      1.5
2      2.5
3      3.5
4      4.5
5      3.5
6      6.5
7      7.5
8      5.5
9      6.5
10    8.5
11    2.5
12    3.5
;
run;
proc expand data=test out=need ;
   convert y=mean5/method=none transformout=(movave 5);
run;

data need;
   set need;
   if x<5 then do;
      mean5=.;
          end;
run;
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
bakoll + 3 + 3 精彩帖子
cherrystrawbery + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 3  论坛币 + 3  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

三人行必有我师

藤椅
cherrystrawbery 发表于 2012-2-23 11:19:23
yugao1986 发表于 2012-2-23 09:41
data test;
   input x y;
cards;
你好,小弟还想请教一下。比如说股票001有20个数据,股票002有30个数据,怎样对每个股票按时间分别排序,得到序列1,,,20,1,,,30.

板凳
yugao1986 发表于 2012-2-23 11:44:36
cherrystrawbery 发表于 2012-2-23 11:19
你好,小弟还想请教一下。比如说股票001有20个数据,股票002有30个数据,怎样对每个股票按时间分别排序, ...
mysas论坛有过关于移动平均的讨论,我记录下来了,你可以看看.http://blog.csdn.net/yugao1986/article/details/6301820
  1. data a;
  2. infile datalines;
  3. input cid month yymmn6. balance;
  4. format month yymm.;
  5. datalines;
  6. 1 200001 1
  7. 1 200002 1
  8. 1 200003 2
  9. 1 200004 .
  10. 1 200005 1
  11. 1 200006 1
  12. 1 200007 1
  13. 1 200008 1
  14. 1 200009 1
  15. 1 200010 1
  16. 1 200011 1
  17. 1 200012 1
  18. 1 200101 1
  19. 1 200102 1
  20. 1 200103 1
  21. 1 200104 1
  22. 1 200105 1
  23. 1 200106 1
  24. 1 200107 1
  25. 1 200108 1
  26. 1 200109 1
  27. 2 200001 1
  28. 2 200002 1
  29. 2 200003 2
  30. 2 200004 .
  31. 2 200005 1
  32. 2 200006 1
  33. 2 200007 1
  34. 2 200008 1
  35. 2 200009 1
  36. ;
  37. run;
  38. proc sort data=a;
  39.    by cid;
  40. run;
  41. data b;
  42.    set a;
  43.    cnt+1;
  44.    by cid;
  45.    if first.cid then cnt=1;
  46. run;
  47. proc print data=b;run;
复制代码
三人行必有我师

报纸
sunset1986 发表于 2012-2-23 11:52:23
data test;
   input x y;
cards;
1      1.5
2      2.5
3      3.5
4      4.5
5      3.5
6      6.5
7      7.5
8      5.5
9      6.5
10    8.5
11    2.5
12    3.5
;
run;

proc expand data=test out=Random method=none;
        convert y=mean1 / transformout=(movave 3);
run;

data random;
    set random;
    if x<8; (8之后应该就不能做5个数的moving avg了吧?)
run;
An honest tale speeds best being plainly told.
Cheers!

地板
apmzf 发表于 2012-2-24 11:01:55
sunset1986 发表于 2012-2-23 11:52
data test;
   input x y;
cards;
想问句为什么这么多人写那个cards的代码呢?输入很复杂呢~~
新手求问。。。

7
sunset1986 发表于 2012-2-24 11:10:43
sunset1986 发表于 2012-2-23 11:52
data test;
   input x y;
cards;
写错了,应该是if x>4才对,不好意思
An honest tale speeds best being plainly told.
Cheers!

8
sunset1986 发表于 2012-2-24 11:11:49
apmzf 发表于 2012-2-24 11:01
想问句为什么这么多人写那个cards的代码呢?输入很复杂呢~~
新手求问。。。
呃,这个,从我的角度讲是因为这个代码可以把你输入的数据highlight,仅此而已,呵呵
An honest tale speeds best being plainly told.
Cheers!

9
sunset1986 发表于 2012-2-24 11:32:51
%let p=12;
data c (drop=i b1-b&p.);
        set a;
        n+1;
        by cid;
        (n指代每组的序号)
        if first.cid then n=1;
        array a[&p.] b1-b&p.;
        a[1]=lag(balance);
        do i=2 to &p.;
                a[i]=lag(a[i-1]);
        end;
        mean6=mean(of b1-b6);
        mean12=mean(of b1-b12);
run;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
cherrystrawbery + 1 + 1 + 1 热心帮助其他会员

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

An honest tale speeds best being plainly told.
Cheers!

10
apmzf 发表于 2012-2-24 17:16:54
sunset1986 发表于 2012-2-24 11:11
呃,这个,从我的角度讲是因为这个代码可以把你输入的数据highlight,仅此而已,呵呵
呵呵,原来如此,谢谢

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

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