楼主: gqm2008
2476 8

[原创博文] sas中如何新增数据以满足作图时的需要 [推广有奖]

  • 2关注
  • 1粉丝

大专生

11%

还不是VIP/贵宾

-

威望
0
论坛币
7 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
165 点
帖子
41
精华
0
在线时间
33 小时
注册时间
2011-7-26
最后登录
2013-10-13

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题,目标是做出价格随时间变化的走势,但是不是每天都会有销售记录i,所以有些天的数据在作图时显示不出来,在多个表同时比较时,因为横坐标轴(日期)不同,所以难以比较。我的想法是在数据表中增补上缺省日期的值(价格).然后再作图。

应该如何实现呢?
不知道我说清楚了没,附件为数据表和现在显示出的图,大家可以看下我的解释。

图1是某表画图后的结果,纵轴为price, 横轴mmdd为x月x日的数据。

如图所示,横轴是从01/04开始,到10/30结束的,但是中间有些日期是跳过的,比如01/04, 01/05,01/06然后就直接跳到01/10了。

我现在想将横轴固定为 01/01 至10/30 每一天都显示,然后缺失日期的price值默认为前一天的price 值。例如,图1种01/06直接跳掉了01/10,那么中间的01/07,01/08,01/09都默认为01/06的price值。 以此类推。

这样我就可以纵向比较各个产品在01/01 到10/30的价格变化走势了。

sample 是一个数据表,但是其中缺失的数据太多,而且其中日期mmdd的格式感觉不是那么规范,本人新手,不是很熟悉sas,希望各位懂得朋友帮忙看看。万分感谢。
二维码

扫码加我 拉你入群

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

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

关键词:Sample Price Rice 价格变化 AMPL 数据表 坐标轴 如图所示 price 如何

图1.png (140.84 KB)

某个表画图后显示的结果

某个表画图后显示的结果

sample.rar

1.18 KB

数据表的一个sample

本附件包括:

  • sample.sas7bdat

沙发
gqm2008 发表于 2011-8-1 16:18:27 |只看作者 |坛友微信交流群
求助,自己顶顶

使用道具

藤椅
tj0412ymy 发表于 2011-8-1 23:21:10 |只看作者 |坛友微信交流群
这个问题有些难度,顶一下!
对SAS和统计方面感兴趣的朋友,请加SAS学习和认证讨论群:169157207。欢迎在群上讨论!

使用道具

板凳
gqm2008 发表于 2011-8-1 23:26:18 |只看作者 |坛友微信交流群
tj0412ymy 发表于 2011-8-1 23:21
这个问题有些难度,顶一下!
实在不行看来只能手动输入了。。。

使用道具

报纸
tj0412ymy 发表于 2011-8-1 23:48:12 |只看作者 |坛友微信交流群
gqm2008 发表于 2011-8-1 23:26
实在不行看来只能手动输入了。。。
这个问题可以在SAS中解决,不要急,静待高手露脸
对SAS和统计方面感兴趣的朋友,请加SAS学习和认证讨论群:169157207。欢迎在群上讨论!

使用道具

地板
guoluo 发表于 2011-8-2 20:58:52 |只看作者 |坛友微信交流群
供参考
  1. data date(sortedby=date);
  2.   do date = '03mar10'd to '30oct10'd;
  3.     output;
  4.   end;
  5. run;

  6. data sample2(sortedby=date keep=date net_price);
  7.   set sample;
  8.   format date mmddyy4.;
  9.   month = input(scan(_mmdd,1,'/'),8.);
  10.   day = input(scan(_mmdd,2,'/'),8.);
  11.   date = mdy(month,day,2010);
  12. run;

  13. data sample2;
  14.   merge sample2 date;
  15.   by date;
  16.   retain price;
  17.   if not missing(net_price) then price = net_price;
  18.   drop net_price;
  19. run;

  20. proc sgplot data=sample2;
  21. series x = date y = price;
  22. yaxis label = 'Net Price'max = 100 min = 30;
  23. run;
复制代码

使用道具

7
tj0412ymy 发表于 2011-8-4 09:42:50 |只看作者 |坛友微信交流群
guoluo 发表于 2011-8-2 20:58
供参考
楼上的数据处理部分不错!图形输出结果: SGPLOT 结果
建议采用PROC GPLOT过程,画出图的更好看一些:

  1. symbol i=j;
  2. proc gplot data=sample2;
  3. plot price*date;
  4. run;quit;
复制代码

Results: gplot1.png
对SAS和统计方面感兴趣的朋友,请加SAS学习和认证讨论群:169157207。欢迎在群上讨论!

使用道具

8
gqm2008 发表于 2011-8-4 22:09:28 |只看作者 |坛友微信交流群
guoluo 发表于 2011-8-2 20:58
供参考
感谢指点!试验成功!

使用道具

9
gqm2008 发表于 2011-8-4 22:09:45 |只看作者 |坛友微信交流群
tj0412ymy 发表于 2011-8-4 09:42
楼上的数据处理部分不错!图形输出结果:
建议采用PROC GPLOT过程,画出图的更好看一些:
同感,正在用gplot做途中!非常感谢!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-17 11:40