0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SAS:Data step中first和last变量的应用场景

冬至子 来源:小高的SAS学习笔记 作者:小高笔记 2023-05-19 14:36 次阅读

SAS的data步中,可以使用by分组,在处理过程中会产生两个临时变量first.variable和last.variable,这两个临时变量的值不会写到结果中,这两个临时变量的赋值情况如下:

由于data step是按行处理每一条观测的,当一条观测为某一组的第一条记录时,那么first.variable就为1,否则为0;当一条观测为某一组的最后一条记录时,那么last.variable就为1,否则为0;如果某一组中只有一条观测,那么first.avriable=last.variable都为1.因此,可以使用这两个变量来筛选每一组中的第一条或最后一条观测。以下示例演示如何在SAS中使用first & last

考虑这样一种场景:假设有某校一学期内组织篮球比赛的数据,如下所示,每一条观测对应一个team的一次比赛记录,我们知道一个team在一学期内可能会进行多次比赛。

例1:找到每个 team得分最高和最低分别对应的进球数

data test;

input team $ points rebounds;

  datalines;

Mavs 29 10

Mavs 13 6

Mavs 22 5

Mavs 20 9

Spurs 13 9

Spurs 15 10

Spurs 33 8

Spurs 27 11

Rockets 25 8

Rockets 14 4

Rockets 16 7

Rockets 12 4

LLC 15 9

;

run;

第一步:先按team和points排序

proc sort data=test out=sort_test;

by team points;

run;

图片

第二步:创建临时变量first和last

data test1;

set sort_test;

by team points;

first=first.team;

  last=last.team;

  if first.team or last.team then output;

run;

结果如下:

图片

由上图可以看到,first变量为1表示该team得分最低所进的球的数量,last变量为1表示该team得分最高所进的球的数量。我们发现,对于第一个team LLC,它的first.和last都为1,说明这个team只进行过一次比赛。这里需要注意的是,对于by语句后面的每一个变量,都会有一个对应的first和last临时变量,并且这些临时变量都不会出现在数据集中。

例2:计算每个 team进行比赛的次数

第一步:先按team排序

proc sort data=test out=sort_test;

by team;

run;

第二步:创建临时变量first和last

data test1;

set sort_test;

  by team;



  if first.team then

        number = 0;

  number + 1;

  if last.team then output;

run;

结果如下:

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • LLC
    LLC
    +关注

    关注

    34

    文章

    502

    浏览量

    75955
  • SAS
    SAS
    +关注

    关注

    2

    文章

    516

    浏览量

    32663
收藏 人收藏

    评论

    相关推荐

    AG32VF-MIPI应用场景

    MIPI接口技术在图像和视频传输的应用越来越广泛,应用场景也在不断拓展,而不仅限于移动设备。MIPI接口在物联网、智能家居、智能监控、智能电视、智能汽车等领域也得到广泛应用。 MIPI还可
    发表于 01-22 08:56

    NanoEdge AI的技术原理、应用场景及优势

    等领域。以下是一些具体的应用场景: 1 . 智能家居:通过将 NanoEdge AI 集成到智能家居设备,可以实现对家庭环境的实时监控和智能控制,如温度调节、照明控制、安防监控等。 2.工业自动化
    发表于 03-12 08:09

    MOS管的应用场景

    mos管的应用场景,你了解么?低压MOS管可称为金属氧化物半导体场效应管,因为低压MOS管具有良好的开关特性,广泛应用在电子开关的电路。如开关电源,电动马达、照明调光等!下面银联宝科技就跟大家一起
    发表于 11-14 09:24

    E4360 SAS瞬态部分不响应某些SCPI命令

    子系统置于连续启动模式但它没有。命令LIST:TERM:LAST 1,(@ 1)假设SAS保持在列表末尾的最后一个瞬态步骤。但事实并非如此。 E4360 SAS Firmware愿景A.01.07忽略了
    发表于 01-16 09:13

    this的使用场景及与C,Java的this的区别

    【JS】this有哪些使用场景?跟C,Java的this有什么区别?如何改变this的值?
    发表于 03-11 10:17

    PCIExpress SATA和SAS设计验证的简化

    Simplify the validation of your PCI Express®, SATA and SAS designs with the first full-capability protocol viewer built into a digital o
    发表于 11-05 14:07

    =>的使用场景有哪些

    使用场景
    发表于 10-27 13:25

    eMBB的CP-OFMD调制波形的应用场景

    5G新的无线电接口:eMBB的CP-OFMD调制波形的应用场景
    发表于 01-04 07:11

    volatile关键字应用场景及示例

    volatile关键字1.应用场景2.示例1.应用场景volatile关键字分析,往往应用在三种场合1)多线程编程共享全局变量的时候,该全局变量要加上volatile进行修饰,让编译器
    发表于 08-24 07:21

    ARM的技术特征是什么?应用场景有哪些?

    ARM的技术特征是什么?应用场景有哪些?
    发表于 11-05 07:32

    消息队列的5个常见应用场景

    消息队列的5个常见应用场景https://segmentfault.com/a/1190000017130224想要在单片机开发应用消息队列处理事件主要是为了解耦,减少模块与模块之间的耦合。看过挺
    发表于 11-22 06:22

    MS9331的应用场景是什么?

    MS9331的应用场景是什么?
    发表于 02-11 06:41

    请教一下编译报错no section to be FIRST/LAST是什么原因呢?

    - no section to be FIRST/LAST. 是什么原因呢?编译环境:MDK5
    发表于 10-20 10:50

    蓝牙多连接应用场景举例

    蓝牙多连接应用场景举例 一、蓝牙多连接的通信方式: 1-1、蓝牙MESH组网图: 1-2、蓝牙星型组网图; 二、两种方案的优劣势: 2-1、 MESH方式网络的节点数量多,能够实现单播、组播
    发表于 05-09 09:09

    labview 和 wincc 的区别 使用场景

    labview 和 wincc 的区别 使用场景 都是上位机软件,都可以做监控软件 wincc的名气也比较大 对比的资料较少 写这些文章的人,从自己的从事的行业出发,带有自己的思维 使用的场景 肯定
    发表于 10-27 18:01