SAS 函数

SAS函数是编程语言的一个组件,可接受参数、执行计算或进行其他操作并返回值。返回值是字符型或数值型的结果,可用于赋值语句或 表达式中。SAS包含很多函数,也可以自定义函数。在BASE SAS软件 中,SAS函数可用于DATA步编程、WHERE表达式、宏语言语句、 PROC REPORT和结构化查询语言SQL(Structured Query Language)。

SAS函数的形式如下:

函数名(参数1  <,  ...参数n>)
函数名(OF 变量列表)
函数名(参数 | OF 变量列表 | OF数组名{*} <..., 参数 | OF 变量列表 | OF数组名{*} >)

其中:

  • ·函数名用于给出函数名称。
  • ·参数可以是变量名、常量或任何SAS表达式。多个参数间使用逗号(,)分隔。
  • ·变量列表可以是任何形式的变量列表。多个列表之间使用空格分 隔。例如sum(of x y z)、sum(of x1-x10)、sum(x,of x1-x5y1- y5)、sum(x,of x1-x5,of y1-y5)。最后两种表示方式具有同等效果。
  • ·数组名{*}指在当前DATA步中已经定义的数组。

数值函数

字符操作函数


数值与字符转换函数

1.PUT函数

PUT函数使用指定的格式返回值,可用于将数字值转换成字符值。 其基本形式如下:

PUT(源,  格式)

其中,源为要进行重新格式化的常量、变量或表达式,可以是字符型或数值型。格式为要应用在源上的SAS格式。PUT函数可用于将数字 根据格式转换为字符或将字符值转换为其他字符。默认情况下,如果源 是数值型,结果字符串会向右对齐,如果源是字符型,则结果字符串会 向左对齐。也可以在格式中添加对齐标识-L、-C、-R分别表示左对齐、 居中或右对齐,改变默认对齐方式。格式必须与源的类型一致。也就是说,如果源是字符,格式名必须以$符号开始;如果源是数字,格式则不能以$开始。PUT函数不影响数据集中的变量格式或属性。

子公司员工信息保存在saslib.employee2中,使用PUT函数对 Emp_ID的数值进行转换,并创建新的字符型变量New_Emp_ID,同 时,使用DROP语句将原始变量Emp_ID删除,之后再使用RENAME语 句将New_Emp_ID改名为Emp_ID。这样,所生成数据集中包含的变量 名就会保持不变。该过程很容易理解,这里不再给出数据示例进行讲 解。相关代码如下:

data  saslib.employee2;
set saslib.employee2;
New_Emp_ID=put(Emp_ID, best10.);
drop Emp_ID;
rename New_Emp_ID=Emp_ID;
run;

2.INPUT函数

INPUT函数返回当SAS使用指定输入格式转换SAS值之后的结果。 其基本形式如下:

INPUT(源,  输入格式)

其中,源为要应用输入格式的字符常量、字符变量或字符表达式。 格式为要应用在源上的SAS输入格式。

INPUT函数会将源的值使用指定的输入格式进行转换。INPUT函数 可用于将字符值转换为数字值或其他字符值。输入格式指定了结果是数 值型还是字符型。INPUT函数也不影响数据集中的变量输入格式或属性。

公司需要对员工入职日期进行排序,首先要将日期值(Date)转换 为数字。这里使用INPUT函数,并使用输入格式date9.将字符格式的日 期值(例如“01JAN2012”)转换为该日期对应的数字进行存储。代码如 下:

data  saslib.sales;
set saslib.sales;
Num_Date=input(Date, date9.);
drop Date;
rename Num_Date=Date;
run;
proc print data=saslib.sales noobs;
run;
proc contents data=saslib.sales;
run;

与日期时间相关的函数

SAS提供日期(date)、时间(time)和日期时间(datetime)函数从日期、时间和日期时间值中得到年份、月份、日、小时、分钟、秒等 信息,它们也可以将这些信息组成SAS的日期、时间和日期时间值。表3.13给出了SAS中常用的与日期、时间相关的函数。除此之外,SAS还 提供对日期的间隔进行操作的函数,详细情况请参考SAS帮助文档。

将公司员工入职日期中的年份、月份和日分别提取出来, 建立新的变量Year、Month和Day。

代码如下:

data  work.employee_ymd;
set saslib.employee;
Year = year(Entry_Date);
Month = month(Entry_Date);
Day = day(Entry_Date);
run;

SAS 函数的更多相关文章

  1. SAS学习经验总结分享:篇三—SAS函数

    SAS函数学习 文章为原创,禁止复制或转载,转载请标明出处, http://www.cnblogs.com/smallcrystal/p/4842346.html 1.函数输写格式: 1)一般书写格式 ...

  2. sas 基础(1)-关于数据格式的SAS函数

    (一)字符转换: 1)字符型转换成数值型 Numvar=INPUT(source,informat) 2)数值型转换成字符型 Chavar=PUT(source,format) (二)字符型变量的处理 ...

  3. SAS学习笔记44 宏函数

    类SAS函数的宏函数 该部分函数共5个,其无论是名字.语法.功能都与SAS函数类似,只是在函数名前多了一个“%”.这5个宏函数分别是: %INDEX %LENGTH %SCAN %SUBSTR %UP ...

  4. SAS 操作数据集的观测

    SAS  操作数据集的观测 1. SAS表达式 表达式是操作数和操作符的序列,该序列会形成一组可执行并产生 结果值的指令.其中,操作数可以是常量.变量或表达式:操作符是表 示比较.数学计算或逻辑运算的 ...

  5. SAS笔记

    SAS基础知识 SAS里面的PROC一览 The ACECLUS Procedure : 聚类的协方差矩阵近似估计(approximate covariance estimation for clus ...

  6. sas教程

    http://web5.pku.edu.cn/pucssr/SASbiancheng.pdf 本教程中的主题将向您介绍 SAS Enterprise Guide.您最好依次浏览这些主题. 概述 启动项 ...

  7. sas编程-日期相差计算函数 intnx

    sas编程-日期相差计算函数 intnx 示例代码: data _null_;    lastdate=intnx('year',today(),-100);    format lastdate  ...

  8. SAS中常见的数组函数

    SAS中常见的数组函数有: dim dimk hbound hboundk lbound lboundk 数组函数计萁数组的维数.上下界,有利于写出可移植的程序,数组函数包括:dim(x) 求数组x第 ...

  9. SAS常用函数

    SAS常用函数 一.数学函数  ABS(x) 求x的绝对值. MAX(x1,x2,…,xn) 求所有自变量中的最大一个. MIN(x1,x2,…,xn) 求所有自变量中的最小一个. MOD(x,y) ...

随机推荐

  1. Java爬虫——常用的maven依赖

    java实现爬虫常用的第三方包: httpclient,for http jsoup,for dom rhino,for js jackson,for json pom.xml摘录 <depen ...

  2. 把一个syn报文给rst掉

    下面展示一个极其简单的例子,看如何使用netfilter来将一个指定端口的syn报文给rst掉. //************************************************* ...

  3. Pycharm配置支持vue语法

    1. 2. 3. 4. 5.

  4. validate表单验证

    validate使用步骤:1.导入jquery.js2.导入validate.js3.在页面加载成功之后 对表单进行校验  $("选择器").validate()4.在valida ...

  5. 在create-react-app里使用ant design

    使用create-react-app创建的项目,要使用ant design. 1.首先进入项目根目录,yarn add antd. 2.在App.css引入 样式文件,@import '~antd/d ...

  6. python 决策树

    RID age income student credit_rating Class:buys_computer 1 youth high no fair no 2 youth high no exc ...

  7. python 并发编程 操作系统 进程 并发.并行 及 同步/异步,阻塞/非阻塞

    操作系统: 多道技术背景: 提高工作效率(充分利用IO阻塞的时间) 同时执行多个任务 多道技术 空间复用:充分的利用内存空间 时间复用:充分利用IO阻塞时间 分时系统: 并发:提高了程序的工作效率 两 ...

  8. 第四周博客作业 <西北师范大学| 周安伟>

    一,助教博客链接https://home.cnblogs.com/u/zaw-315/ 二,本周点评作业量点评23份,对提交的优秀作业代码进行运行一份博客问题无法点评问题博客链接:https://ww ...

  9. mysql权限操作(转)

    慢慢看吧mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为: grant 权限 on 数据库对象 to ...

  10. Codeforces Round #552 (Div. 3) C题

    题目网址:http://codeforces.com/contest/1154/problem/C 题目意思:小猫吃三种食物,A,B,C,一周吃食物的次序是,A,B,C,A,C,B,A,当小猫该天无食 ...