当前位置: 首页 > news >正文

RENAME 语句与RENAME选项学习

一、语法

/*RENAME 语句*/
RENAME old-name-1=new-name-1 <...old-name-n=new-name-n>;
/*RENAME 选项*/
RENAME=(old-variable-name-1=new-variable-name-1 <old-variable-name-2=new-variable-name-2 ...> )

使用RENAME语句和RENAME选项可以更改一个多个变量变量列表变量与变量列表的组合的名称。

RENAME语句

  • 只能作用于DATA步。
  • 定义的新变量名仅作用于输出数据集仅对在OUTPUT模式下打开的数据集有效,RENAME选项也是一样,啥意思?),在当前DATA步中的编程语句仍使用旧的变量名称。

RENAME选项

  • 作用于DATA步和PROC步。
  • 在创建数据集时使用RENAME选项,新变量名作用于输出数据集中。
  • 输入数据集时使用RENAME选项,则在DATA步的编程语句中需要使用新变量名
    • 如果RENAME选项与WHERE(语句或选项)一起使用,则需要在WHERE表达式中使用新变量名
    • 如果RENAME选项与DROP选项和KEEP选项在同一个DATA步中使用,DROP选项和KEEP选项在RENAME选项前,则必须使用旧变量名。不能在同一个语句中删除和重命名一个变量。

二、举例

例一:使用RENAME语句更改一个变量/变量列表/变量与变量列表的组合的名称。

rename street=address;
rename time1=temp1 time2=temp2 time3=temp3;
rename name=Firstname score1-score3=Newscore1-Newscore3;

例二:在DATA步中使用变量的旧名称。但是输出数据集中变量会被命名为新名称。

data market;set sales;rename Olddept=Newdept Oldaccount=Newaccount;if Oldaccount>5000;                           /*使用旧名称*/keep Olddept Oldaccount items volume;
run;

例三:在DATA步中使用变量的旧名称。但是由于KEEP选项作用于RENAME语句之后,所以在在DATA语句中的KEEP选项使用的是新名称。

data market(keep=newdept newaccnt items volume);/*使用新名称*/rename olddept=newdept oldaccnt=newaccnt;set sales;if oldaccnt>5000;                            /*使用旧名称*/
run;

例四:在DATA步中,同时对变量和变量列表进行变量名的修改

data temp;input (score1-score3) (2.,+1) name $;rename name=Firstname                        /*对变量名修改*/score1-score3=Newscore1-Newscore3;    /*对变量列表名称修改*/datalines;
12 24 36 Lisa
22 44 66 Fran
;

例五: 使用RENAME选项修改输出数据集中的变量名。在DATA步中使用旧变量名。

data one;input x y z;datalines;
24 595 439
243 343 034
;
proc print data=one;
run;data two(rename=(x=keys));     /*修改输出数据集中的变量名*/set one;z=x+y;                      /*DATA步中使用旧变量名*/
run;
proc print data=two;
run;

 例六: 使用RENAME选项修改输入数据集中的变量名。在DATA步中使用新变量名。

data three;set one(rename=(x=keys));  /*修改输入数据集中的变量名*/z=keys+y;                  /*DATA步中使用新变量名*/
run; proc print data=three;
run;

 例七: 使用WHERE语句处理在PROC步中被RENAME选项修改的变量。

data test;input score1;datalines;
26 
76
86 
56
;proc print data=test (rename=(score1=score2)); /*在处理前修改变量名*/where score2 gt 75;                         /*使用新变量名*/
run;

 

 

相关文章:

  • TCP Socket编程
  • C语言_函数hook_LD_PRELOAD原理和示例
  • opencv处理图像(二)
  • 进阶二:基于HC-SR04和LCD1602的超声波测距
  • 【ts】for in对象时,ts如何正确获取对应的属性值
  • sched_fair 调度:负载权重、虚拟运行时间与最小虚拟时间
  • Js 判断浏览器cookie 是否启用
  • 2025盘古石初赛WP
  • linux 开发小技巧之git增加指令别名
  • 路由策略和策略路由的区别以及配置案例
  • 用Python绘制动态彩色ASCII爱心:技术深度与创意结合
  • FHE与后量子密码学
  • 解决使用宝塔Linux部署前后端分离项目遇到的问题
  • Nakama:让游戏与应用更具互动性和即时性
  • 相机Camera日志分析之八:高通Camx HAL架构opencamera三级日志详解及关键字
  • spring中的@Inject注解详情
  • linux perf top分析系统性能
  • 深入解析JavaScript变量作用域:var、let、const全攻略
  • [架构之美]从零开始整合Spring Boot与Maven(十五)
  • upload-labs靶场通关详解:第四关
  • 重庆荣昌出圈背后:把网络流量变成经济发展的增量
  • 会计江湖|年报披露关注什么:独董给出的“信号”
  • 欧盟决意与俄罗斯能源彻底决裂之际,美国谋划新生意:进口俄气对欧转售
  • 上海杨浦:优秀“博主”购房最高可获200万补贴
  • 保利42.41亿元竞得上海杨浦东外滩一地块,成交楼面单价超8万元
  • 欧洲承诺投资6亿欧元吸引外国科学家