楼主: limuqi
2430 8

[问答] 怎样在一幅图上画多个变量 [推广有奖]

  • 1关注
  • 2粉丝

本科生

27%

还不是VIP/贵宾

-

威望
0
论坛币
464 个
通用积分
0.0600
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
838 点
帖子
57
精华
0
在线时间
54 小时
注册时间
2011-8-2
最后登录
2016-1-5

楼主
limuqi 发表于 2013-7-12 05:49:51 |AI写论文
100论坛币
我有一个dataset
hour var1  var2  var3 ... var 250
1      2     3       4        5
2      3    5        7        10
.       .     .        .          .
.       .     .        .          .
.       .     .        .          .
24    3    5        1         4
问题1:
我有小于250个左右变量(var1-var250中,可能会missing几个变量, e.g. 没有var148 和var 136,具体missing那个我不知道), 我想将存在的变量画在一幅图上,symbol都是统一的
plot var_i*hour,
symbol c=black v=none i=join h=0.4

AXIS1 LABEL=(ANGLE=90 " count ");
AXIS2 LABEL=("HOURS") order=(1 to 24 by 1);

我知道可以用var1*hour var2*hour ... /overlay,但是写250个太多了,而且可能有些变量缺失。我想知道有什么简单方法。

问题二,
我还想 得到一列数:average(存在的var1-var250) by hour
将这列数和上图(问题一)画在一起,但用不同的颜色表示(symbol c=red v=none i=join h=0.4),请问该怎么画。
data只选了13个var,一个是xls文件,一个是zip的sas格式。方便下载


sample.zip (5.62 KB) 本附件包括:
  • sample.sas7bdat
data.xls (16.5 KB)
关键词:多个变量 missing dataset Overlay average black count 我不知道 左右

沙发
邓贵大 发表于 2013-7-12 05:49:52
  1. libname in '.' access=readonly;
  2. proc transpose data=in.sample out=hell;
  3.         by hh;
  4.         var Percent:;
  5. run;
  6. proc means data=hell mean noprint;
  7.         by hh;
  8.         class _NAME_;
  9.         var COL1;
  10.         output out=hell mean=COL1;
  11. run;
  12. axis1 label=(a=90 "count");
  13. axis2 label=('hours') order=(1 to 24);
  14. symbol1 v=none i=join repeat=1 h=.4 c=red;
  15. symbol2 v=none i=join repeat=1000 h=.4 c=black;

  16. proc gplot data=hell;
  17.         plot col1*hh=_NAME_/haxis=axis2 vaxis=axis1 nolegend;
  18. run;
复制代码
Be still, my soul: the hour is hastening on
When we shall be forever with the Lord.
When disappointment, grief and fear are gone,
Sorrow forgot, love's purest joys restored.

藤椅
yingxincai 发表于 2013-7-12 07:20:51
你把数据传上来,我给你画

板凳
playmore 发表于 2013-7-12 08:41:34
如果用proc sgplot画的话,
我知道是可以用(var1-var150)*hour来画的
另外求average的话
也可以用如下的代码解决

data test;
set test;
array var{*} var1-var150;
average=mean(of var{*});
run;
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

报纸
limuqi 发表于 2013-7-12 10:35:22
yingxincai 发表于 2013-7-12 07:20
你把数据传上来,我给你画
已添加附件

地板
yingxincai 发表于 2013-7-12 17:24:30
limuqi 发表于 2013-7-12 10:35
已添加附件
你需要的图放在附件里,

7
yingxincai 发表于 2013-7-12 17:30:28
我用的是stata,不是sas

8
limuqi 发表于 2013-7-12 23:03:46
邓贵大 发表于 2013-7-12 05:49
想问下经过proc means setp之后,work.hell 中mean 的 _name_ 为空,
如果要给mean 的 _name_命名为avg,可以在proc means 中直接命名么?还是需要一个额外的 data stepe.g.

data hell1;
        set hell;
        if _name_<:'' then _name_='avg';
        run;

9
limuqi 发表于 2013-7-12 23:13:51
yingxincai 发表于 2013-7-12 17:30
我用的是stata,不是sas
虽然不是我想要的,还是非常感谢

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

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