📜  SAS函数

📅  最后修改于: 2021-01-08 14:30:38             🧑  作者: Mango

SAS功能

在本主题中,我们将讨论SAS功能。函数使我们能够对SAS的数据和现有数据集进行广泛的操作。

SAS提供了多种内置功能,可用于数据处理和分析。我们将这些功能用作DATA语句的一部分。

一个函数接受变量作为参数并提供结果,该结果可以存储到另一个变量中。参数的数量可以根据函数的类型而变化。一些函数接受固定数量的参数,而一些函数接受零参数

句法:

要实现函数,请使用以下语法:

FUNCTIONNAME(argument1,argument2,...argumentn);

哪里,

FUNCTIONNAME:这是SAS内置函数的名称。

参数:它是提供给函数的值,以便它可以执行指示性操作。参数可以是变量常量表达式或其他函数

根据数据类型,功能可分为以下类别:

  • 角色功能
  • 日期和时间功能
  • 数学函数
  • 截断功能
  • 杂项功能

字符功能

字符函数用于操纵字符或字符串值。

以下是用于处理字符串值的各种SAS内置字符函数:

  • UPCASE:它将字符串的所有字母转换为大写。
  • 小写:将所有字符串转换成小写。
  • 程序:将字符串的每个首字母转换为大写。
  • REVERSE:用于反转字符串字母。
  • 扫描:它返回特定索引的字符串值。

例:

Data character_functions;

/* Convert the string into lower case */
Lowcse = LOWCASE('HELLO WORLD');

/* Convert the string into upper case */
Upcase = UPCASE('hello world');
/*Capitalizes each word*/
Prop_Case= PROPCASE('hello world');

/* Reverse the string */
Reverse_ = REVERSE('Hello');

/* Return the nth word */
Scan_First_Letter = SCAN('Hello World',1);
run;

proc print data = character_functions noobs;
run;

在SAS Studio中执行以上代码:

输出:

日期和时间功能

日期和时间功能用于处理日期和时间值。

以下是用于操纵日期和时间值的各种SAS内置日期和时间函数:

  • INTCK:用于计算日期之间的年或月的总数。
  • 工作日:用于显示特定日期的工作日。
  • 今日:以SAS日期格式返回当前日期。
  • 时间:以SAS时间格式返回当前时间。

例:

Data date_functions;
INPUT @1 date1 date9. @11 date2 date9.;
format date1 date9.  date2 date9.;
Years = INTCK('YEAR',date1,date2);
months = INTCK('MONTH',date1,date2);
weekday =  WEEKDAY(date1);
today = TODAY();
time = time();
DATALINES;
26NOV2010 18JUL2015
11MAR2009 18JUL2012
;
proc print data = date_functions noobs;
run;

在SAS Studio中执行以上代码:

输出:

数学功能:

数学函数用于对数值或变量值进行数学计算。

以下是用于对数值进行计算的SAS内置数学函数:

  • MAX:返回变量值中的最大值。
  • MIN:返回变量值中的最小值。
  • MEDIAN:通过计算所有变量值返回中值。
  • RANUNI:返回随机值。
  • SQRT:返回所有变量值之和的平方根值。

例:

Data Mathmatical_functions;
v1=45; v2=54; v3=23; v4=34; v5=67;
max_val = MAX(v1,v2,v3,v4,v5);
min_val = MIN (v1,v2,v3,v4,v5);
med_val = MEDIAN (v1,v2,v3,v4,v5);
rand_val = RANUNI(0);
SR_val= SQRT(sum(v1,v2,v3,v4,v5));
proc print data = Mathmatical_functions noobs;
run;

在SAS Studio中执行以上代码:

输出:

截断功能

截断函数用于截断数值。以下是SAS内置的截断函数,用于对整数值执行截断。

  • Ceil:返回整数值的最大最近值。
  • Floor:它返回整数值的最小最近值。
  • 整数:将数字部分或左侧的数字返回十进制数字。
  • 舍入:返回整数值的最接近值。

例:

Data truncation_functions;

/* Nearest greatest integer */
ceil_ = CEIL(12.85);

/* Nearest smallest integer */
floor_ = FLOOR(12.85);

/* Integer portion of a number */
int_ = INT(23.41);

/* Round off to nearest value */
round_ = ROUND(4526.68);
run;

proc print data = truncation_functions noobs;
run;

在SAS Studio中执行以上代码:

输出:

杂项功能

现在让我们了解通常使用的SAS的两个其他功能。

  • 邮递区号
  • 摩特

邮递区号

它返回对应于其五位ZIP州代码的大写的两个字母的州邮政编码(或美国领土的全球GSA地理代码)。

例:

在这里,我们采用邮政编码27511 ,它对应于美国领土的全球GSA地理编码NC。

Data zipstate_functions;

/* Nearest greatest integer */
state2=zipstate('27511');

proc print data = zipstate_functions noobs;
run;

在SAS Studio中执行以上代码:

输出:

莫特

它返回摊销参数。

句法:

MORT(a,p,r,n)

哪里,

a:它是一个数值,用于指定初始金额。

p:它是一个数字值,指定定期付款。

r:它是一个数值,用于指定定期利率,以分数表示。

n:整数值,指定复利期数。

例:

50,000卢比的借贷期限为30年,年利率为10%。它每月复利。因此,每月付款可以表示为:

Data Mort_functions;

/* Amortization calculation */
payment = mort(50000, . , .10/12,30*12);

proc print data = Mort_functions noobs;
run;

在SAS Studio中执行以上代码:

输出: