楼主: 来梦来人
7346 10

[问答] 请教一个困扰很久关于notsorted选项的问题 [推广有奖]

  • 4关注
  • 10粉丝

已卖:1962份资源

副教授

11%

还不是VIP/贵宾

-

威望
0
论坛币
10918 个
通用积分
0.1200
学术水平
17 点
热心指数
22 点
信用等级
18 点
经验
339039 点
帖子
473
精华
0
在线时间
812 小时
注册时间
2011-10-16
最后登录
2019-3-13

楼主
来梦来人 发表于 2012-1-13 13:55:12 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data raw;
    input a b c;
datalines;
4 4 1
2 3 1
3 6 2
4 5 2
1 2 1
5 5 3
4 7 3
;
data out;
    do _n_=1 by 1 until(last.c);
        set raw;
        by c notsorted;
  first_c=first.c;
  last_c=last.c;
        output;
    end;
run;
proc print;
run;
请问notsorted选项的作用不是进行分组不排序吗?

                  SAS 系统           2012年01月13日 星期五 下午01时49分19秒   1
                                            Obs    a    b    c    first_c    last_c
                                             1     4    4    1       1          0
                                             2     2    3    1       0          1
                                             3     3    6    2       1          0
                                             4     4    5    2       0          1
                                             5     1    2    1       1          1
                                             6     5    5    3       1          0
                                             7     4    7    3       0          1

为什么第2条记录的last_c值为1,而第5条记录的first_c值为1呢?不是进行分组吗?C的值都为1,应该是一组啊。请问为什么?
二维码

扫码加我 拉你入群

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

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

关键词:sorted nots TED SOR not

沙发
虎牙k 发表于 2012-1-13 14:03:28

藤椅
来梦来人 发表于 2012-1-13 14:07:05
这个选项的作用究竟是什么哦?

板凳
zhangzachary 发表于 2012-1-13 14:16:57
分开就是 not sorted ,允许未经排序的变量使用first. 和last. 。第二条记录对于c来说是last,因为第三条记录c变了,第五条记录的c与第四条和第六条都不一样,所以first和last值都是1 。
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

报纸
maidenhan 发表于 2012-1-13 14:22:51
来梦来人 发表于 2012-1-13 14:07
这个选项的作用究竟是什么哦?
Let's pay attention to "c", "first_c" and "last_c" only. You'll understand immediately.


                                   Obs    c    first_c    last_c

                                    1     1       1          0
                                    2     1       0          1
                                    3     2       1          0
                                    4     2       0          1
                                    5     1       1          1
                                    6     3       1          0
                                    7     3       0          1
已有 1 人评分经验 热心指数 收起 理由
guo.bailing + 40 + 1 热心帮助其他会员

总评分: 经验 + 40  热心指数 + 1   查看全部评分

地板
来梦来人 发表于 2012-1-13 14:30:14
谢谢各位!

7
crackman 发表于 2012-1-19 20:36:55
也许这个帖子可以帮助你解决这个问题
http://crackman.net/?p=677

8
sunset1986 发表于 2012-2-15 16:42:05
非常感谢~
An honest tale speeds best being plainly told.
Cheers!

9
sunset1986 发表于 2012-2-15 16:51:00
zhangzachary 发表于 2012-1-13 14:16
分开就是 not sorted ,允许未经排序的变量使用first. 和last. 。第二条记录对于c来说是last,因为第三条记 ...
还需要问您一下:如果是分开的,那分组的意义在哪儿呢?或者是通过什么能看出notsorted的效果呢?谢谢
An honest tale speeds best being plainly told.
Cheers!

10
zhangzachary 发表于 2012-2-15 17:03:38
sunset1986 发表于 2012-2-15 16:51
还需要问您一下:如果是分开的,那分组的意义在哪儿呢?或者是通过什么能看出notsorted的效果呢?谢谢
有时候处理数据的时候并不需要排序。
举个例子,一个班级学生一个学期有10次测试,每次测试不合格的同学老师要求补考一次,现在需要登记成绩,有补考的以补考成绩登记,而之前记录的时候补考成绩都是记录在第一次成绩后面,并且10次测试按时间顺序排,每次测试按人名排序。
这个时候,直接用 by name notsorted; if last.name; 就可以了~
已有 1 人评分经验 收起 理由
guo.bailing + 100 精彩帖子

总评分: 经验 + 100   查看全部评分

寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

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

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