楼主: 823954913
8727 6

[学习分享] proc sort降序排列出错 [推广有奖]

  • 0关注
  • 19粉丝

副教授

31%

还不是VIP/贵宾

-

威望
0
论坛币
1336 个
通用积分
7.6921
学术水平
20 点
热心指数
15 点
信用等级
19 点
经验
19254 点
帖子
268
精华
1
在线时间
1193 小时
注册时间
2009-3-7
最后登录
2025-12-12

楼主
823954913 发表于 2019-2-13 16:01:12 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data a;
set sashelp.class;
run;
proc sort data=a;
by  age;run;
data b;
set a;
by age;
run;

这样写没有问题,但是降序排列就不行了
data a;
set sashelp.class;
run;
proc sort data=a;
by decending age;run;
data b;
set a;
by age;
run;

出现以下错误,问什么呢?
ERROR: 在数据集 WORK.A 中没有正确排序 BY 变量。
Name=菲利普 Sex=男 Age=16 Height=72 Weight=150 FIRST.Age=1 LAST.Age=1 _ERROR_=1 _N_=1
NOTE: 由于出错,SAS 系统停止处理该步。
NOTE: 从数据集 WORK.A. 读取了 2 个观测
WARNING: 数据集 WORK.B 可能不完整。该步停止时,共有 0 个观测和 5 个变量


二维码

扫码加我 拉你入群

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

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

关键词:降序排列 ROC SOR Data

沙发
胡明敏 发表于 2019-2-13 20:20:08
谢谢分享

藤椅
whymath 发表于 2019-2-13 22:30:50
应作如下调整:
  1. set a;
  2. by descending age;
  3. run;
复制代码
因为前面是进行了降序处理的。
查看我的精华帖:免费的 SAS 软件

板凳
Momocashew 发表于 2019-2-14 15:44:50
data b;
set a;
by age;
run;
这一段,不具有排序功能。所以不行

报纸
823954913 发表于 2019-2-15 11:04:16
data a;
set sashelp.class;
run;
proc sort data=a;
by decending age;
run;
data b;
set a;
by decending age;
run;
改成这样还是错误的。
ERROR: BY 变量 decending 不在输入数据集 WORK.A 中。
NOTE: 由于出错,SAS 系统停止处理该步。
WARNING: 数据集 WORK.B 可能不完整。该步停止时,共有 0 个观测和 5 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):

地板
823954913 发表于 2019-2-15 15:16:06
解决了,原来是descending写错了。

7
xiaopingN 发表于 2019-2-16 00:44:27
原因可能是数据a 已经按age 降序排列,倒数第二行 by age,默认是ascending,和已有的降序排列冲突。 把倒数第二行 by age 删除,程序应该可以运行, 得到数据b, 而且数据 b也是是按age 降序排列。其实程序可以这样写, 更简单:
data a;
set sashelp.class;
run;
proc sort data=a out=b;
by decending age;run;

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

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