楼主: smluyi
3936 9

sasgplot 中 坐标怎么排序啊 [推广有奖]

  • 0关注
  • 0粉丝

高中生

50%

还不是VIP/贵宾

-

威望
0
论坛币
64 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
253 点
帖子
26
精华
0
在线时间
0 小时
注册时间
2008-3-6
最后登录
2008-12-10

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有一张表 厚度 厚度代码 样本量
110~151 0149 1000
140~160 0159 1003
140以下 96 2343
200~280 0279 3434
280以上 3346 4643
90~150 6434 5787
90以下 14 457
制图时   样本量*厚度    横坐标是厚度 刻度是按照表上厚度排列的 我想按照厚度代码排列 怎么办啊
二维码

扫码加我 拉你入群

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

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

关键词:sasgplot sgplot gplot plot GPL 坐标 sasgplot

回帖推荐

wolfcrying 发表于9楼  查看完整内容

看来我要好人做到底了,定义format 当然可以动态定义了.请看,数据集已生成的前提下data userfmt; set base; retain fmtname 'order' type 'n'; start=label; label=id; run;proc sort data=base nodupkey; by start;run;proc format cntlin=userfmt;run;这样就可以动态地定义一个format,避免hard code.注意start值不允许重复.这时候,把data 步中的format语句移到proc gplot步中去.因为数据步执行时相应 ...

wxq1638 发表于10楼  查看完整内容

老白干儿喝完,搓一把吧!抄袭者我立马打他不过数据集缺失先用0补齐data a;input a1 1-3 a2 5-7 a3 9-12 a4 14-17;s=mean(a1,a2);cards; 110~151 0149 1000 140~160 0159 1003 000~140 0096 2343 200~280 0279 3434 280~280 3346 4643 090~150 6434 5787 000~090 1400 0457 ;proc sort data=a out=b1(drop=s);by s;proc iml;use b1;read all into b;x1=b[,1]||b[,2];x2=b[,3];x3=b[,4];print x1 x2 x3;结果     ...

本帖被以下文库推荐

沙发
wolfcrying 发表于 2008-3-10 22:14:00 |只看作者 |坛友微信交流群

你要理解变量类型,厚度的变量类型是字符型的,只能按字典排序了,当然得不到你想要的结果。

解决办法是,加一列,比如1,2,3,4等等分别表示序号。这样,才能排序。

如果你想让1还显示为‘110~151’,可以通过创建SAS的format来对坐标刻度值进行转换,具体可参考help

使用道具

藤椅
wxq1638 发表于 2008-3-10 23:38:00 |只看作者 |坛友微信交流群

靠,需要找找。玩完休息

[此贴子已经被作者于2008-3-10 23:49:40编辑过]

使用道具

板凳
smluyi 发表于 2008-3-11 00:02:00 |只看作者 |坛友微信交流群

我知道  厚度是字符啊   举个例子吧  例如3个学生  ABC  但是他们的学号分别是312  那么坐标排列肯定是  ABC  但是我想让他是按照学号来排列 就是 BCA 出现  该怎么办

使用道具

报纸
wolfcrying 发表于 2008-3-11 11:44:00 |只看作者 |坛友微信交流群


proc format;
 value order 3='A'
             2='B'
    1='C'
             4='E'
             5='D';
    run;

data base;
 input id num value;
 format num order.;    /* very important*/
 cards;
 A 3 1
 B 2 4
 C 1 2
 D 5 3
 E 4 1
 ;

 symbol i=j;
proc sort data=base;by num;run;
 proc gplot data=base;
  plot value*num;
  run;
quit;

使用道具

地板
wxq1638 发表于 2008-3-11 11:59:00 |只看作者 |坛友微信交流群
等我喝完8两老白干,定能解决搂住的问题。 干杯!

使用道具

7
smluyi 发表于 2008-3-11 13:45:00 |只看作者 |坛友微信交流群

wolfcrying    

 我了解你的意思  你的横坐标其实是num ,但是你把num当中对应的值转换成了id中的对应值的符号  

但是我需要的是 横坐标是 id  只是出现刻度的顺序按照num中的来排   还有你的表中似乎id读不进去 是不是少了句把 id定义成 字符 $ 啊   在input前面加一句 length id $3

不过还是非常感谢你的,至少你帮我,教我, 我刚刚学习这个,还很不熟悉  能不能帮我再想想有没有办法  排序啊   Thank you very much!!

使用道具

8
smluyi 发表于 2008-3-11 13:51:00 |只看作者 |坛友微信交流群

哦 还有是不要写死了  你好像是定死了  num中对应的 就用 一定是id中对应的值 不可更改  换张表就要重新定义,是这个意思么?  要是这样,如果是散点图 用order=('')  一样可以办到的吧

    我想要个不要定义死了的  灵活的方法

上面的博士生wxq1638  你的老酒喝完了没有  别醉了  有办法 教教我啊

使用道具

9
wolfcrying 发表于 2008-3-11 14:37:00 |只看作者 |坛友微信交流群

看来我要好人做到底了,定义format 当然可以动态定义了.

请看,数据集已生成的前提下

data userfmt;

 set base;

 retain fmtname 'order' type 'n';

 start=label; label=id;

 run;

proc sort data=base nodupkey; by start;run;

proc format cntlin=userfmt;run;

这样就可以动态地定义一个format,避免hard code.

注意start值不允许重复.

这时候,把data 步中的format语句移到proc gplot步中去.因为数据步执行时相应的format还没有定义.

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 10 精彩帖子

总评分: 经验 + 3  论坛币 + 10   查看全部评分

使用道具

10
wxq1638 发表于 2008-3-11 16:41:00 |只看作者 |坛友微信交流群

老白干儿喝完,搓一把吧!抄袭者我立马打他

不过数据集缺失先用0补齐

data a;
input a1 1-3 a2 5-7 a3 9-12 a4 14-17;
s=mean(a1,a2);
cards;
110~151 0149 1000
140~160 0159 1003
000~140 0096 2343
200~280 0279 3434
280~280 3346 4643
090~150 6434 5787
000~090 1400 0457
;
proc sort data=a out=b1(drop=s);by s;
proc iml;
use b1;
read all into b;
x1=b[,1]||b[,2];
x2=b[,3];
x3=b[,4];
print x1 x2 x3;

结果

                                                             SAS 系统                   20080311日 星期二 下午042934   2

                                                    X1                  X2        X3

                                                     0        90      1400       457

                                                     0       140        96      2343

                                                    90       150      6434      5787

                                                   110       151       149      1000

                                                   140       160       159      1003

                                                   200       280       279      3434

                                                   280       280      3346      4643

[此贴子已经被作者于2008-3-11 16:42:52编辑过]

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 10 精彩帖子

总评分: 经验 + 3  论坛币 + 10   查看全部评分

使用道具

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

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

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

GMT+8, 2024-4-25 12:39