楼主: lovemanbbs
20746 29

[原创博文] _N_是什么意思? [推广有奖]

11
soporaeternus 发表于 2010-8-5 13:08:05
3条是因为该id在原数据里有3条
data步只循环了一次
_N_不为1的时候,stop掉了
Let them be hard, but never unjust

12
lovemanbbs 发表于 2010-8-5 13:11:08
谢谢大家,看明白了
总结自己出错的两点原因:
1,误解了题意
2,宏的部分还很弱
IF _N_ = 1 THEN CALL SYMPUT("selectedcustomer",CustomerID);在排序好的flowersales中找到了一个CustomerID(他的Quantity最大)赋值给宏变量selectedcustomer,然后用where语句判断输出结果

13
lovemanbbs 发表于 2010-8-5 13:38:59
再问一下,若要输出
Obs    ID               SaleDate                 Variety          Quantity            
1       188R       February 11, 2008     Ginger              24
2       188R       February 11, 2008     Anthurium        24
程序应该怎么该??

14
lovemanbbs 发表于 2010-8-5 13:39:15
谁能回答一下吗?

15
soporaeternus 发表于 2010-8-5 13:43:31
PROC SORT DATA = flowersales;
BY DESCENDING Quantity;
RUN;
把其中的DESCENDING 去掉
Let them be hard, but never unjust

16
lovemanbbs 发表于 2010-8-5 13:59:11
15# soporaeternus
首先按你的方法运行程序是可以得到正确的结果的
如果,Quantity按降序排列(也就是不删除 DESCENDING),令_N_=9,不就是取第9行的CustomerID嘛,为什么得不到结果呢?
正确的结果:
Obs    ID               SaleDate                 Variety          Quantity            
1       188R       February 11, 2008     Ginger              24
2       188R       February 11, 2008     Anthurium        24

还是我真的没有搞清楚原理?

17
soporaeternus 发表于 2010-8-5 14:08:12
_N_=9的话把else stop也去掉
否则_N_=1的时候就stop掉了
Let them be hard, but never unjust

18
pobel 在职认证  发表于 2010-8-5 14:09:52
lovemanbbs 发表于 2010-8-5 13:59
15# soporaeternus
首先按你的方法运行程序是可以得到正确的结果的
如果,Quantity按降序排列(也就是不删除 DESCENDING),令_N_=9,不就是取第9行的CustomerID嘛,为什么得不到结果呢?
正确的结果:
Obs    ID               SaleDate                 Variety          Quantity            
1       188R       February 11, 2008     Ginger              24
2       188R       February 11, 2008     Anthurium        24

还是我真的没有搞清楚原理?
_N_=9 可以取第9行的CustomerID,但是else stops;就不能用了,否则在_N_=1的时候DATA Step就结束了,根本就到不了第9行了。
和谐拯救危机

19
pobel 在职认证  发表于 2010-8-5 14:11:13
soporaeternus 发表于 2010-8-5 14:08
_N_=9的话把else stop也去掉
否则_N_=1的时候就stop掉了
                   
和谐拯救危机

20
lovemanbbs 发表于 2010-8-5 14:12:23
17# soporaeternus
You are great,thank you!

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

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