関数・コールルーチン

Last-modified: 2014-02-25 (火) 13:11:06

数学関数とコールルーチン

  • ABS関数 絶対値 abs(-2.4) = 2.4 , abs(10) = 10
  • AIRY関数 エアリー関数 airy(-3) = -0.378814294 , airy(2) = 0.0349241304
  • ARCOS関数 アークコサイン arcos(0) = 1.5707963268 , arcos(0.5) = 1.0471975512 , arcos(1) = 0
  • ARSIN関数 アークサイン arsin(0) = 0 , arsin(0.5) = 0.5235987756 , arsin(1) = 1.5707963268
  • ATAN2関数 アークタンジェント2 atan2(1,1) = 0.7853981634 , atan2(1,2) = 0.463647609 , atan2(2,4) = 0.463647609
  • ATAN関数 アークタンジェント atan(1) = 0.7853981634 , atan(2) = 1.1071487178
  • BETA関数 ベータ関数 beta(4,2) = 0.05 , beta(2,1) = 0.5
  • CNONCT関数 非心χ二乗分布の非心度 cnonct(2,3,0.1) = 4.3060911149 , cnonct(2,3,0.2) = 2.2919031752
  • COALESCE関数 最初の非欠損値(コアレス関数) coalesce(.,.,3.4) = 3.4 , coalesce(-2,.,2) = -2
  • COMB関数 組み合わせ数 comb(4,2) = 6 , comb(5,4) = 5
  • CONSTANT関数 各種定数 constant("pi") = 3.1415926536 , constant("big") = 1.797693E308
  • COSH関数 ハイパボリックコサイン cosh(0) = 1 , cosh(3.141592/2) = 2.5091777266
  • COS関数 コサイン cos(0) = 1 , cos(3.141592/2) = 3.267949E-7
  • DAIRY関数 エアリー関数の導関数 dairy(-3) = 0.3145837692 , dairy(2) = -0.053090384
  • DEVIANCE関数 デビアンス deviance("NORMAL",1,1) = 0 , deviance("POISSON",1,1) = 0
  • DIGAMMA関数 ディガンマ関数(対数ガンマ関数の1階微分関数) digamma(2) = 0.4227843351 , digamma(4) = 1.2561176684
  • ERFC関数 相補誤差関数 erfc(0) = 1 , erfc(1) = 0.1572992071 , erfc(2) = 0.004677735
  • ERF関数 誤差関数 erf(0) = 0 , erf(1) = 0.8427007929 , erf(2) = 0.995322265
  • EXP関数 指数関数 exp(0) = 1 , exp(1) = 2.7182818285 , exp(2) = 7.3890560989
  • FACT関数 階乗 fact(2) = 2 , fact(5) = 120 , fact(10) = 3628800
  • FNONCT関数 非心F分布の非心度 fnonct(2,3,5,0.1) = 13.178876207 , fnonct(2,3,5,0.5) = 3.1855623621
  • GAMMA関数 ガンマ関数 gamma(-1.5) = 2.3632718012 , gamma(5) = 24 , gamma(9.5) = 119292.46199
  • IBESSEL関数 変形ベッセル関数 ibessel(3,3,1) = 0.0477833196 , ibessel(4,2,0) = 0.05072857
  • JBESSEL関数 ベッセル関数 jbessel(3,3) = 0.3090627223 , jbessel(4,2) = 0.0339957198
  • LGAMMA関数 対数ガンマ関数(ガンマ関数の対数) lgamma(5) = 3.1780538303 , lgamma(9.5) = 11.689333421
  • LOG10関数 常用対数 log10(0.1) = -1 , log10(1) = 0 , log10(2) = 0.3010299957
  • LOG2関数 2を底とした対数 log2(0.1) = -3.321928095 , log2(1) = 0 , log2(2) = 1
  • LOGBETA関数 対数ベータ関数 logbeta(4,2) = -2.995732274 , logbeta(2,1) = -0.693147181
  • LOG関数 自然対数 log(0.1) = -2.302585093 , log(1) = 0 , log(2) = 0.6931471806
  • MODZ関数 剰余(浮動小数点誤差修正をしない) modz(123,10) = 3
  • MOD関数 剰余 mod(123,10) = 3
  • PERM関数 順列数 perm(4,2) = 12 , perm(5,4) = 120
  • SIGN関数 符号関数 sign(-4) = -1 , sign(0) = 0 , sign(0.1) = 1
  • SINH関数 ハイパボリックサイン sinh(0) = 0 , sinh(3.141592/2) = 2.3012980823
  • SIN関数 サイン sin(0) = 0 , sin(3.141592/2) = 1
  • SQRT関数 平方根 sqrt(2) = 1.4142135624 , sqrt(3) = 1.7320508076
  • TANH関数 ハイパボリックタンジェント tanh(0) = 0 , tanh(3.141592/2) = 0.9171522838 , tanh(2) = 0.9640275801
  • TAN関数 タンジェント tan(0) = 0 , tan(3.141592/2) = 3060023.307
  • TNONCT関数 非心t分布の非心度 tnonct(2,3,0.1) = 3.4818191326 , tnonct(2,3,0.2) = 2.9017469232
  • TRIGAMMA関数 トリガンマ関数(対数ガンマ関数の2階微分関数) trigamma(2) = 0.6449340668 , trigamma(4) = 0.2838229557
  • CALL ALLPERMルーチン 順列,置換 第2引数以降の変数値を置換する.第1引数は置換の番号で,N個の変数の置換に対し,1からN!個の置換が指定できる.(1は,単位置換)
    x1=4 x2=111 x3=222 x4=333 => call allperm(x1,x2,x3,x4); => x1=4 x2=111 x3=333 x4=222
  • CALL LOGISTICルーチン ロジスティック関数
    x1=-1 x2=0 x3=1 x4=2 => call logistic(x1,x2,x3,x4); => x1=0.2689414214 x2=0.5 x3=0.7310585786 x4=0.880797078
  • CALL SOFTMAXルーチン ソフトマックス値
    x1=-1 x2=0 x3=1 x4=2 => call softmax(x1,x2,x3,x4); => x1=0.0320586033 x2=0.0871443187 x3=0.2368828181 x4=0.6439142599
  • CALL STDIZEルーチン 標準化
    x1=-1 x2=0 x3=1 x4=2 => call stdize(x1,x2,x3,x4); => x1=-1.161895004 x2=-0.387298335 x3=0.3872983346 x4=1.1618950039
  • CALL TANHルーチン ハイパボリックタンジェント
    x1=-1 x2=0 x3=1 x4=2 => call tanh(x1,x2,x3,x4); => x1=-0.761594156 x2=0 x3=0.761594156 x4=0.9640275801

記述統計関数

  • CSS関数 偏差平方和 css(1,2,3,4) = 5
  • CV関数 決定係数 cv(1,2,3,4) = 51.639777949
  • GEOMEAN関数 幾何平均 geomean(1,2,3,4) = 2.2133638394
  • GEOMEANZ関数 幾何平均(浮動小数点誤差修正をしない) geomeanz(1,2,3,4) = 2.2133638394
  • HARMEAN関数 調和平均 harmean(1,2,3,4) = 1.92
  • HARMEANZ関数 調和平均(浮動小数点誤差修正をしない) harmeanz(1,2,3,4) = 1.92
  • IQR関数 4分位範囲 iqr(1,2,3,4) = 2
  • KURTOSIS関数 尖度 kurtosis(1,2,3,4) = -1.2
  • LARGEST関数 k番目の最大値 largest(2,-1,-2,0,8,5) = 5
  • MAD関数 中央絶対偏差(中央値からの偏差の絶対値の中央値) mad(1,2,3,4) = 1
  • MAX関数 最大値 max(1,2,3,4) = 4
  • MEAN関数 平均 mean(1,2,3,4) = 2.5
  • MEDIAN関数 中央値 median(1,2,3,4) = 2.5
  • MIN関数 最小値 min(1,2,3,4) = 1
  • MISSING関数 欠損 欠損値(1)か否(0)を返す missing(0) = 0 , missing(,) = 1
  • N関数 非欠損数 n(0,1,2,3,.) = 4
  • NMISS関数 欠損数 nmiss(0,1,2,3,.) = 1
  • ORDINAL関数 k番目の最小値 ordinal(2,-1,-2,0,8,5) = -1
  • PCTL関数 百分率 pctl(25,1,2,3,4) = 1.5
  • RANGE関数 範囲 range(1,2,3,4) = 3
  • RMS関数 二乗平均平方根 rms(1,2,3,4) = 2.7386127875
  • SKEWNESS関数 歪度 skewness(1,2,3,4) = 0
  • SMALLEST関数 k番目の最小値 smallest(2,-1,-2,0,8,5) = -1
  • STD関数 標準偏差 std(1,2,3,4) = 1.2909944487
  • STDERR関数 標準誤差 stderr(1,2,3,4) = 0.6454972244
  • SUM関数 総和 sum(1,2,3,4) = 10
  • USS関数 平方和 uss(1,2,3,4) = 30
  • VAR関数 分散 var(1,2,3,4) = 1.6666666667

確率,クォンタイル,乱数

  • CDF関数 累積分布関数 cdf("BERNOULLI",1,0.3) = 1
  • LOGCDF関数 対数累積分布関数 logcdf("BETA",0.2,4,5) = -2.877387618
  • LOGPDF関数 対数確率密度関数 logpdf("BINOMIAL",3,0.2,10) = -1.602826854
  • LOGSDF関数 対数生存関数 logsdf("CAUCHY",2) = -1.913360365
  • PDF関数 確率密度関数 pdf("CHISQUARE",3,1) = 0.0513934433
  • POISSON関数 ポアソン分布 poisson(2,2) = 0.6766764162
  • PROBBETA関数 ベータ分布 probbeta(.2,4,5) = 0.0562816
  • PROBBNML関数 2項分布 probbnml(.2,10,3) = 0.8791261184
  • PROBBNRM関数 2変量正規分布 probbnrm(.2,3,.4) = 0.5791061532
  • PROBCHI関数 χ二乗分布 probchi(3,1) = 0.9167354833
  • PROBF関数 F分布 probf(2,4,3) = 0.7021977291
  • PROBGAM関数 ガンマ分布 probgam(2,4) = 0.1428765395
  • PROBHYPR関数 超幾何分布 probhypr(40,30,10,5) = 0.0497529808
  • PROBMC関数 平均値の多重比較の確率またはクォンタイルを返す probmc("dunnett1",1,.,40,5,.5,.51,.55,.45,.2) = 0.4829921961
  • PROBNEGB関数 負の2項分布 probnegb(0.2,3,2) = 0.05792
  • PROBNORM関数 標準正規分布 probnorm(1.96) = 0.9750021049
  • PROBT関数 t分布 probt(1,9) = 0.8282818019
  • SDF関数 生存関数(=1-CDF) sdf("EXPONENTIAL",2) = 0.1353352832
  • BETAINV関数 ベータ分布のクォンタイル betainv(0.0562816,4,5) = 0.2
  • CINV関数 χ二乗分布のクォンタイル cinv(0.9167354833,1) = 2.9999999993
  • FINV関数 F分布のクォンタイル finv(0.7021977291,4,3) = 2.0000000002
  • GAMINV関数 ガンマ分布のクォンタイル gaminv(0.1428765395,4) = 2
  • PROBIT関数 標準正規分布のクォンタイル probit(0.975002105) = 1.9600000025
  • QUANTILE関数 分布関数のクォンタイル quantile("F",0.7021977291,4,3) = 2.0000000002
  • TINV関数 t分布のクォンタイル tinv(0.8282818019,9) = 0.9999999999
  • NORMAL関数 正規乱数(=RANNOR) normal(0) = 0.4462263119
  • RANBIN関数 2項分布乱数 ranbin(0,10,0.2) = 0
  • RANCAU関数 コーシー分布乱数 rancau(0) = 1.3322769175
  • RAND関数 乱数 rand("GAMMA",1) = 0.0686830056
  • RANEXP関数 指数分布乱数 ranexp(0) = 3.6111449637
  • RANGAM関数 ガンマ分布乱数 rangam(0,1) = 0.4910474211
  • RANNOR関数 正規乱数(=NORMAL) rannor(0) = 0.7536668111
  • RANPOI関数 ポアソン分布乱数 ranpoi(0,10) = 16
  • RANTBL関数 階段分布乱数 rantbl(0,0.2,0.1,0.5,0.2) = 4
  • RANTRI関数 三角分布乱数 rantri(0,0.5) = 0.2919145409
  • RANUNI関数 一様乱数(=UNIFORM) ranuni(0) = 0.1279669442
  • UNIFORM関数 一様乱数(=RANUNI) uniform(0) = 0.1280891533
  • CALL RANBINルーチン 2項分布乱数
    x1=17 x2=100 x3=0.3 x4=-1 => call ranbin(x1,x2,x3,x4); => x1=310018657 x2=100 x3=0.3 x4=25
  • CALL RANCAUルーチン コーシー分布乱数
    x1=17 x2=-1 => call rancau(x1,x2); => x1=1055505749 x2=41.879800749
  • CALL RANEXPルーチン 指数分布乱数
    x1=17 x2=-1 => call ranexp(x1,x2); => x1=310018657 x2=1.9354195594
  • CALL RANGAMルーチン ガンマ分布乱数
    x1=17 x2=3 x3=-1 => call rangam(x1,x2,x3); => x1=1055505749 x2=3 x3=1.3536320108
  • CALL RANNORルーチン 正規乱数
    x1=17 x2=-1 => call rannor(x1,x2); => x1=1055505749 x2=-1.964644986
  • CALL RANPERKルーチン 無作為なk個の置換
    x1=17 x2=2 x3=111 x4=222 x5=333 => call ranperk(x1,x2,x3,x4,x5); => x1=1055505749 x2=2 x3=111 x4=222 x5=333
  • CALL RANPERMルーチン 無作為な置換
    x1=17 x2=111 x3=222 x4=333 => call ranperm(x1,x2,x3,x4); => x1=1055505749 x2=222 x3=333 x4=111
  • CALL RANPOIルーチン ポアソン分布乱数
    x1=17 x2=30 x3=-1 => call ranpoi(x1,x2,x3); => x1=310018657 x2=30 x3=24
  • CALL RANTBLルーチン 階段分布乱数
    x1=17 x2=0.1 x3=0.2 x4=0.7 x5=-1 => call rantbl(x1,x2,x3,x4,x5); => x1=310018657 x2=0.1 x3=0.2 x4=0.7 x5=2
  • CALL RANTRIルーチン 三角分布乱数
    x1=17 x2=0.5 x3=-1 => call rantri(x1,x2,x3); => x1=310018657 x2=0.5 x3=0.268666789
  • CALL RANUNIルーチン 一様乱数
    x1=17 x2=-1 => call ranuni(x1,x2); => x1=310018657 x2=0.144363687
  • CALL STREAMINITルーチン RAND関数用シード値の指定
    call streaminit(17);r=rand('EXPONENTIAL'); => r=1.6400602208

端数処理

  • CEIL関数 切り上げ関数 ceil(-2.2) = -2 , ceil(1.4) = 2
  • CEILZ関数 切り上げ関数(浮動小数点誤差修正をしない) ceilz(-2.2) = -2 , ceilz(1.4) = 2
  • FLOOR関数 切り下げ関数 floor(-2.2) = -3 , floor(1.4) = 1
  • FLOORZ関数 切り下げ関数(浮動小数点誤差修正をしない) floorz(-2.2) = -3 , floorz(1.4) = 1
  • FUZZ関数 浮動小数点誤差修正 最近接整数との差が10e-12未満だった場合に,その整数値に丸める
    fuzz(5.8999999999999) = 5.89999999999990 , fuzz(5.9999999999999) = 6.00000000000000
  • INT関数 切り捨て関数(負値は切り上がる) int(-2.2) = -2 , int(1.4) = 1
  • INTZ関数 切り捨て関数(浮動小数点誤差修正をしない) intz(-2.2) = -2 , intz(1.4) = 1
  • ROUND関数 四捨五入 round(123.456) = 123 , round(123.456,0.1) = 123.5
  • ROUNDE関数 五捨五入(最近接偶数への丸め) rounde(3.5) = 4 , rounde(4.5,1) = 4
  • ROUNDZ関数 四捨五入(浮動小数点誤差修正をしない) roundz(123.456) = 123 , roundz(123.456,0.1) = 123.5
  • TRUNC関数 切り落とし関数(指定バイト長に詰める) trunc(1/9,8) = 0.1111111111 , trunc(1/9,4) = 0.1111111045

日時関数

  • 現在日付などを得る TODAY,DATE,TIME,DATETIME
  • 日付時間要素を取り出す DAY,MONTH,YEAR,QTR,WEEKDAY,WEEK,HOUR,MINUTES,SECOND,DATEPART,TIMEPART
  • 日付時間要素からSAS日付などを作る MDY,DATEJUL,YYQ,HMS,DHMS
  • 2つのSAS日付値の時間間隔を返す DATDIF,YRDIF
  • 時間間隔指定子に従って,SAS日付などの時間間隔を求めたり,時間をすすめたりする INTCK,INTNX
  • SAS日付などを形式ディスクリプタで返す NLDATE,NLTIME,NLDATM

see SAS日付関連の関数

文字操作関数

  • ANYALNUM関数 最初の英数字の位置 anyalnum("zA9_; =*") = 1 , anyalnum("zA9_; =*",4) = 0
  • ANYALPHA関数 最初の英字の位置 anyalpha("zA9_; =*") = 1 , anyalpha("zA9_; =*",4) = 0
  • ANYCNTRL関数 最初の制御文字の位置 anycntrl("zA9_; =*") = 0 , anycntrl("zA9_; =*",4) = 0
  • ANYDIGIT関数 最初の数字の位置 anydigit("zA9_; =*") = 3 , anydigit("zA9_; =*",4) = 0
  • ANYFIRST関数 最初のSAS変数名の先頭に使用可能な文字の位置 anyfirst("zA9_; =*") = 1 , anyfirst("zA9_; =*",4) = 4
  • ANYGRAPH関数 最初のグラフィック文字の位置 anygraph("zA9_; =*") = 1 , anygraph("zA9_; =*",4) = 4
  • ANYLOWER関数 最初の英小文字の位置 anylower("zA9_; =*") = 1 , anylower("zA9_; =*",4) = 0
  • ANYNAME関数 最初のSAS変数名に使用可能な文字の位置 anyname("zA9_; =*") = 1 , anyname("zA9_; =*",4) = 4
  • ANYPRINT関数 最初の印字可能な文字の位置 anyprint("zA9_; =*") = 1 , anyprint("zA9_; =*",4) = 4
  • ANYPUNCT関数 最初の区切り文字の位置 anypunct("zA9_; =*") = 4 , anypunct("zA9_; =*",4) = 4
  • ANYSPACE関数 最初の空白類文字の位置 anyspace("zA9_; =*") = 6 , anyspace("zA9_; =*",4) = 6
  • ANYUPPER関数 最初の英大文字の位置 anyupper("zA9_; =*") = 2 , anyupper("zA9_; =*",4) = 0
  • ANYXDIGIT関数 最初の16進数字の位置 anyxdigit("zA9_; =*") = 2 , anyxdigit("zA9_; =*",4) = 0
  • BYTE関数 文字コードに対応する文字を返す byte(65) = A
    data;
     do n=0 to 3;
       num2b=byte(130)||byte(79+n);
       put n= num2b=;
     end;
    run;
    n=0 num2b=0
    n=1 num2b=1
    n=2 num2b=2
    n=3 num2b=3
  • CAT関数 文字の連結(接頭と接尾の空白を取り除かない) cat(" aa "," bb "," cc ") = aa bb cc
  • CATS関数 文字の連結(接頭と接尾の空白を取り除く) cats(" aa "," bb "," cc ") = aabbcc
  • CATT関数 文字の連結(接尾の空白を取り除く) catt(" aa "," bb "," cc ") = aa bb cc
  • CATX関数 文字の連結(接頭と接尾の空白を取り除き,区切り文字を挟む) catx("::"," aa "," bb "," cc ") = aa::bb::cc
  • CHOOSEC関数 文字列リストから,指定番目の文字列を取り出す choosec(2,"aa","bb","cc") = bb , choosec(-1,"aa","bb","cc") = cc
  • CHOOSEN関数 数値リストから,指定番目の数値を取り出す choosen(2,11,22,33) = 22 , choosen(-1,11,22,33) = 33
  • COALESCEC関数 最初の非欠損値(文字データのコアレス関数) coalescec("","aa","bb","") = aa
  • COLLATE関数 文字コード列に対応する文字列を返す collate(65,70) = ABCDEF , collate(48,,10) = 0123456789
  • COMPARE関数 2つの文字列の最初の相違文字位置を返す compare("ABCDE","ABcDF") = -3 , compare("ABCDE","ABcDF","i") = -5
  • COMPBL関数 空白の連続を1つの空白にする compbl("aa bb cc") = aa bb cc
  • COMPGED関数 一般化編集距離 compged("special","spiral") = 300
  • COMPLEV関数 レーベンシュタイン編集距離 complev("special","spiral") = 3
  • COMPRESS関数 空白(または特定の)文字を削除する compress("aa bb cc") = aabbcc
  • COUNT関数 指定文字列の出現回数 count("hxxp://www.abc.com/","ww") = 1
  • COUNTC関数 指定文字の出現回数 countc("hxxp://www.abc.com/","/") = 3
  • DEQUOTE関数 先頭のクォート文字列を取り出す dequote("'111'222'333'444") = 111
  • FIND関数 指定文字列の出現位置(修飾子オプションがある) find("hxxp://www.abc.com/","ww") = 8
  • FINDC関数 指定文字の出現位置(修飾子オプションがある) findc("hxxp://www.abc.com/","/.") = 6
  • IFC関数 指定論理式の真偽を文字データで返す ifc(4>3,"Yes","No","missing") = Yes
  • IFN関数 指定論理式の真偽を数値データで返す ifn(4>4,100,-100,0) = -100
  • INDEX関数 指定文字列の出現位置(修飾子オプションがない) index("hxxp://www.abc.com/","ww") = 8
  • INDEXC関数 指定文字の出現位置(修飾子オプションがない) indexc("hxxp://www.abc.com/","/.") = 6
  • INDEXW関数 指定単語の出現位置(修飾子オプションがない) indexw("hxxp www abc com ","www") = 6
  • LEFT関数 文字列を左寄せにする left(" aa bb ") = aa bb
  • LENGTH関数 接尾の空白を除いた文字長を返す.ヌルは長さ1 length(" aa bb ") = 7
  • LENGTHC関数 接尾の空白を含めた文字長を返す lengthc(" aa bb ") = 8
  • LENGTHM関数 確保メモリのバイト長を返す lengthm(" aa bb ") = 8
  • LENGTHN関数 すべての空白を除いた文字長を返す.ヌルは長さ0 lengthn(" aa bb ") = 7
  • LOWCASE関数 英大文字を英小文字にする lowcase(" Aa bB ") = aa bb
  • MISSING関数 欠損なら1を,そうでないなら0を返す missing("") = 1
  • NLITERAL関数 有効なSAS変数名文字列に変換 nliteral("200 & char") = '200 & char'N
  • NOTALNUM関数 最初の非英数字の位置 notalnum("zA9_; =*") = 4 , notalnum("zA9_; =*",4) = 4
  • NOTALPHA関数 最初の非英字の位置 notalpha("zA9_; =*") = 3 , notalpha("zA9_; =*",4) = 4
  • NOTCNTRL関数 最初の非制御文字の位置 notcntrl("zA9_; =*") = 1 , notcntrl("zA9_; =*",4) = 4
  • NOTDIGIT関数 最初の非数字の位置 notdigit("zA9_; =*") = 1 , notdigit("zA9_; =*",4) = 4
  • NOTFIRST関数 最初のSAS変数名の先頭に使用可能でない文字の位置 notfirst("zA9_; =*") = 3 , notfirst("zA9_; =*",4) = 5
  • NOTGRAPH関数 最初の非グラフィック文字の位置 notgraph("zA9_; =*") = 6 , notgraph("zA9_; =*",4) = 6
  • NOTLOWER関数 最初の非英小文字の位置 notlower("zA9_; =*") = 2 , notlower("zA9_; =*",4) = 4
  • NOTNAME関数 最初のSAS変数名に使用可能でない文字の位置 notname("zA9_; =*") = 5 , notname("zA9_; =*",4) = 5
  • NOTPRINT関数 最初の印字可能でない文字の位置 notprint("zA9_; =*") = 0 , notprint("zA9_; =*",4) = 0
  • NOTPUNCT関数 最初の非区切り文字の位置 notpunct("zA9_; =*") = 1 , notpunct("zA9_; =*",4) = 6
  • NOTSPACE関数 最初の非空白類文字の位置 notspace("zA9_; =*") = 1 , notspace("zA9_; =*",4) = 4
  • NOTUPPER関数 最初の非英大文字の位置 notupper("zA9_; =*") = 1 , notupper("zA9_; =*",4) = 4
  • NOTXDIGIT関数 最初の非16進数字の位置 notxdigit("zA9_; =*") = 1 , notxdigit("zA9_; =*",4) = 4
  • NVALID関数 SAS変数名の有効性の確認 nvalid("very_long_sas_name","v7") = 1
  • PROPCASE関数 単語の先頭を大文字表記で返す propcase("cat tail WIKIWIKI") = Cat Tail Wikiwiki
  • QUOTE関数 ダブルクォーテーションでクォートする quote(. Hello!) = "Say ""Hello!"""
  • RANK関数 文字の文字コードを返す rank("A") = 65
  • REPEAT関数 文字列の繰り返し repeat("+--",2) = +--+--+--
  • REVERSE関数 文字列を逆順にする reverse("www.abc.com") = moc.cba.www
  • RIGHT関数 文字列を右寄せにする right("aa bb ") = aa bb
  • SCAN関数 N番目の単語の抽出 scan("aa bb/cc dd",3) = cc
  • SCANQ関数 N番目の単語の抽出(クォートされた文字列は,1語と扱う) scanq("aa 'bb/cc' dd",3) = dd
  • SOUNDEX関数 SoundExキーを返す(類似する発音をもつ単語の分類コード) soundex("lattice") = L32 , soundex("lettuce") = L32
  • SPEDIS関数 編集距離(非対称な距離) spedis("special","spiral") = 35 , spedis("spiral","special") = 33
  • STRIP関数 接頭と接尾の空白を取り除く strip(" aa bb ") = aa bb
  • SUBPAD関数 指定バイト長の文字列として返す subpad("abc",1,10) = abc , subpad("abc",2,10) = bc
  • SUBSTR関数 指定位置の文字列を取り出す substr("abcde",2) = bcde , substr("abcde",2,2) = bc
  • SUBSTR関数(左辺の場合) 指定位置に文字列を埋め込む x=1234 => substr(x,2,2)="ab" => x=1ab4
  • SUBSTRN関数 指定位置の文字列を取り出す(非存在位置の指定を許す) substrn("abcde",-1,4) = ab
  • TRANSLATE関数 特定文字の変換 translate("AbCDe","BC","bc") = ABCDe
  • TRANTAB関数 国別文字変換テーブルによる文字コード変換(注意:使用を推奨しません)
  • TRANWRD関数 特定単語の変換 tranwrd("A BC BCD","BC","bc") = A bc bcD
  • TRIM関数 接尾の空白を取り除く(欠損は空白1個で返す) trim("aa bb cc ") = aa bb cc
  • TRIMN関数 接尾の空白を取り除く(欠損はnullで返す) trimn("aa bb cc ") = aa bb cc
  • UPCASE関数 英小文字を英大文字にする upcase(" Aa bB ") = AA BB
  • VERIFY関数 指定文字外の最初の位置を返す verify("12abA3","1234","abcd") = 5
  • CALL CATSルーチン 文字の連結(接頭と接尾の空白を取り除く)
    x1= x2=aa x3=bb x4=cc => call catt(x1,x2,x3,x4); => x1=aabbcc x2=aa x3=bb x4=cc
  • CALL CATTルーチン 文字の連結(接尾の空白を取り除く)
    x1= x2=aa x3=bb x4=cc => call catt(x1,x2,x3,x4); => x1=aa bb cc x2=aa x3=bb x4=cc
  • CALL CATXルーチン 文字の連結(接頭と接尾の空白を取り除き,区切り文字を挟む)
    x1=:: x2= x3=aa x4=bb x5=cc => call catt(x1,x2,x3,x4,x5); => x1=:: x2=aa::bb::cc x3=aa x4=bb x5=cc
  • CALL COMPCOSTルーチン COMPGED関数のコスト値を設定
    call compcost("INSERT=",20,"DELETE=",21,"REPLACE=",22);
  • CALL MISSINGルーチン 指定変数を欠損にする
    call Missing(var1,var2);
  • CALL SCANルーチン N番目の単語の位置と長さを返す
    x1=aa 'bb/cc' dd x2=3 x3= x4= => scan(x1,x2,x3,x4); => x1=aa 'bb/cc' dd x2=3 x3=8 x4=3
  • CALL SCANQルーチン N番目の単語の位置と長さを返す(クォートされた文字列は,1語と扱う)
    x1=aa 'bb/cc' dd x2=3 x3= x4= => scanq(x1,x2,x3,x4); => x1=aa 'bb/cc' dd x2=3 x3=12 x4=2

正規表現関数

  • PRXMATCH関数 PRXMATCH(Perl正規表現, 対象文字列) PRXMATCH(Perl正規表現ID, 対象文字列) 対象文字列から,Perl正規表現にマッチした先頭位置を返す.
  • PRXCHANGE関数 PRXCHANGE(Perl正規表現, 置換回数, 対象文字列) PRXCHANGE(Perl正規表現ID, 置換回数, 対象文字列) 対象文字列から,Perl正規表現にマッチした部分を置換した文字列を返す.
  • PRXPARSE関数 PRXPARSE(Perl正規表現) Perl正規表現をコンパイルし,Perl正規表現IDを返す.
  • PRXPAREN関数 PRXPAREN(Perl正規表現ID) 最後にPRXMATCH関数またはPRXCHANGE関数でパターンマッチングを行った結果において,マッチした部分パターン(括弧でグループ化されている正規表現の一部分)の最大の番号を返す.
  • PRXPOSN関数 PRXPOSN(Perl正規表現ID, 部分パターンの番号,対象文字列) 最後にPRXMATCH関数またはPRXCHANGE関数でパターンマッチングを行った結果において,n番目の部分パターン(括弧でグループ化されている正規表現の一部分)にマッチしている文字列を返す.

see 正規表現

2バイト文字関数(DBCS)

特殊関数

財務関数

変数配列関数

バイナリ論理関数

外部ファイル・WEB

データセット関数

マクロ関数

外部ルーチン