楼主: 823954913
7916 6

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

  • 0关注
  • 19粉丝

副教授

30%

还不是VIP/贵宾

-

威望
0
论坛币
1369 个
通用积分
8.5921
学术水平
20 点
热心指数
15 点
信用等级
19 点
经验
19260 点
帖子
270
精华
1
在线时间
1185 小时
注册时间
2009-3-7
最后登录
2024-4-21

+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;
复制代码
因为前面是进行了降序处理的。
SASUSER

使用道具

板凳
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
拉您进交流群

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

GMT+8, 2024-4-25 06:41