📅  最后修改于: 2021-01-08 14:30:38             🧑  作者: Mango
在本主题中,我们将讨论SAS功能。函数使我们能够对SAS的数据和现有数据集进行广泛的操作。
SAS提供了多种内置功能,可用于数据处理和分析。我们将这些功能用作DATA语句的一部分。
一个函数接受变量作为参数并提供结果,该结果可以存储到另一个变量中。参数的数量可以根据函数的类型而变化。一些函数接受固定数量的参数,而一些函数接受零参数
要实现函数,请使用以下语法:
FUNCTIONNAME(argument1,argument2,...argumentn);
哪里,
FUNCTIONNAME:这是SAS内置函数的名称。
参数:它是提供给函数的值,以便它可以执行指示性操作。参数可以是变量,常量表达式或其他函数。
根据数据类型,功能可分为以下类别:
字符函数用于操纵字符或字符串值。
以下是用于处理字符串值的各种SAS内置字符函数:
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内置日期和时间函数:
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内置数学函数:
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内置的截断函数,用于对整数值执行截断。
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中执行以上代码:
输出: