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

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;

 

 

http://www.xdnf.cn/news/5249.html

相关文章:

  • 理解Yocto项目中`${D}`作为模拟目标系统根文件结构的临时目录
  • 投影显示技术全解析:主流方案对比与雷克赛恩 CyberPro1 的核心优势
  • 【桌面】【输入法】常见问题汇总
  • Day 14
  • 介绍一下synchronized锁升级过程
  • 2024年AI发展趋势全面解析:从多模态到AGI的突破
  • LintCode第485题-生成给定大小的数组,第220题-冰雹猜想,第235题-分解质因数
  • JDBC演进之路:从基础操作到高效连接池
  • 计算机科技笔记: 容错计算机设计03 系统可信性的度量 偶发故障期 浴盆曲线 韦布尔分布
  • 工程师视角下的 AI 浏览器智能体拆解(AI Browser Agent from an Engineer‘s Perspective)
  • TWAS、GWAS、FUSION
  • 使用Simulink开发Autosar Nvm存储逻辑
  • Qt开发经验 --- 避坑指南(11)
  • Ctrl + D是如何与内核文件结束符对应的?如何模拟文件结束符?数字中间为什么不能插入空格或逗号?丰富多彩的语句结束符或分隔符?语句结束符?
  • (剪映)视频添加字幕
  • SEO长尾关键词优化实战技法
  • 利用大型语言模型有效识别网络威胁情报报告中的攻击技术
  • webpack和vite区别
  • Go语言超时控制方案全解析:基于goroutine的优雅实现
  • 移动零--双指针
  • Docker 使用总结及完整示例介绍
  • 【天府诸葛杯】九天画芯 FSHD 三色光源技术晋级复赛:突围下一代底层显示技术
  • 数仓-如何保障指标的一致性
  • MySQL 索引和事务
  • 电子电路:光子是不是粒子?
  • 基于OpenCV的人脸识别:FisherFaceRecognizer算法
  • SolidWork-2023 鼠標工程
  • Java集合
  • Qt中的RCC
  • 如何避免在CMD中分段发送问题导致大模型多段回复的问题?