約 13,732 件
https://w.atwiki.jp/ketcindy/pages/70.html
対数関数の導関数の定義を説明する図を作成する. #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (title=) taisu.zip Setax([7,"sw"]); Drwxy(); // 座標軸を先に描く Plotdata("1","log(x)","x=[0.1,5]"); // y=log(x)のグラフを描く Putoncurve("P","gr1"); Putoncurve("Q","gr1"); Listplot("1",[ [P.x,0],P,[0,P.y] ],["do"]); Listplot("2",[ [Q.x,0],Q,[0,Q.y] ],["do"]); Htickmark([P.x,"x",Q.x,"x+\Delta x"]); Vtickmark([P.y,"y",Q.y,"y+\Delta y"]); // グラフ上に2点P,Qをとり,座標を表示 Expr(A,"w","y=\log x"); // グラフの方程式を記入 Setcolor("cyan"); // 色を指定 Listplot("3",[ [Q.x,0],[P.x,0] ]); Listplot("4",[ [0,Q.y],[0,P.y] ]); Arrowhead(P,"Invert(gr1)"); Arrowhead([P.x,0],"sg3"); Arrowhead([0,P.y],"sg4"); Partcrv("1",P,Q,"gr1"); // グラフ上,および座標軸上で矢印を描く Setcolor("black"); // 黒に戻す Setpt(2); Drwpt("P,Q"); // 大きさ2で点を描く
https://w.atwiki.jp/rubyocho/pages/29.html
データを指定件数だけ取得するpaginate関数 paginate関数 find関数 paginate関数 指定されたモデルから、指定した件数だけデータを取り出す。 (@memo_pages, @memos) = paginate( memos, | per_page = 10|) memosモデルから10件のデータを取得 全体が何件あるかの付帯情報を@memo_pages変数に返す ページ分けをする際に用いる 引数でデータを絞り込んで表示させたり、並び変えも可能 find関数 モデルからデータを取り出す。 「モデル名.find( all)」は、モデルの全データを配列として返す。
https://w.atwiki.jp/rffbl22/pages/100.html
WRF関数 NCLには、WRFの計算結果を解析するための関数が含まれている。 具体的な使い方は、websiteを参照 関数一覧(単なる日本語訳) wrf_avo WRFモデルの出力から絶対渦度を計算 wrf_cape_2d 最大CAPE,最大CIN,LCL,LFCを計算? wrf_cape_3d CAPEとCINを計算 wrf_contour WRF ARWモデルの出力からコンタープロットを描く wrf_dbz WRFモデルの出力からシミュレーションされたレーダー反射因子[dBZ]の値を計算 wrf_eth WRFモデルの出力から相当温位を計算 wrf_helicity WRFモデルの出力からStorm Relative Helicity(SRH)を計算 wrf_ij_to_ll モデルグリッド座標(i,j)に最も近い地点の経度・緯度を探す wrf_interp_1d 1次元変数を鉛直方向に線形補完 wrf_interp_2d_xy 入力されたフィールドから鉛直断面を抽出 wrf_interp_3d_z 特定の気圧面、高度面に内挿 wrf_ll_to_ij 特定の経度、緯度に対する最も近いモデルグリッド座標(i,j)を探す wrf_map WRF ARWモデルの背景用の地図を作成 wrf_map_overlays 背景地図上に異なるプロットIDの変数をプロット wrf_mapres_c WRFファイルの中身から適切なgeographical mapping resourcesを指定? wrf_overlays その他のWRF ARWプロット関数により作成された、複数のプロットをオーバーレイ wrf_pvo モデルの出力から相対渦度を計算 wrf_rh WRF ARWモデルの出力から相対湿度を計算 wrf_slp WRF ARWモデルの出力から海面気圧を計算 wrf_smooth_2d 与えられたフィールドでスムージング wrf_td WRF ARWモデルの出力から露点温度℃を計算 wrf_times_c WRFの文字型変数"Times"をユーザー任意の数値的単位に変換 wrf_tk WRF ARWモデルの出力から温度を計算 wrf_updraft_helicity WRFモデルの出力からupdraft helicityを計算 wrf_user_getvar WRF ARWモデルの出力からデータを抽出し、基本的な診断計算を行う wrf_user_ij_to_ll モデルグリッド座標(i,j)に最も近い地点の経度・緯度を探す wrf_user_intrp2d WRF ARWの2次元モデルデータを与えられた線に沿って内挿 wrf_user_intrp3d WRF ARWのモデルデータを水平・鉛直内挿 wrf_user_list_times WRF ARWの出力から利用可能な時間のリストを抽出 wrf_user_ll_to_ij 特定の経度、緯度に対する最も近いモデルグリッド座標(i,j)を探す wrf_user_unstagger 任意の次元に沿って入力変数をUnstagger? wrf_uvmet 風の(u,v)成分を地球座標系に回転 wrf_vector WRF ARWモデルの出力からベクトルプロットを作成
https://w.atwiki.jp/nopu/pages/253.html
シグモイド関数 シグモイド関数対
https://w.atwiki.jp/hikaroon/pages/89.html
複素数列{a1,a2,...}がaに収束するとは、{|a1-a|,|a2-a|,...}が収束することである。これは実部、虚部がそれぞれ収束することと同値である。 lima_n=a,limb_n=bであるとき、lim(a_n±b_n)=a±b、lim(a_n×b_n)=ab、lim(a_n/b_n)=a/b(ただしb_n≠0)も成り立つ。 一つの複素数にもう一つの複素数を対応させる(一価)関数w=f(z),z,w in Cを考える。 (極限値)Aの開近傍V(除くA)を任意にとるとき、あるaの開近傍U(除くa)があり、f(U)⊂Wとなるとき、limf(z)=Aと書く。 (連続)f(a)が有限な確定値であり、limf(z)=aであるとき、fはaで連続という。言い換えると、 (連続)任意のεに対してあるδがあり、|z-a|<δとなる全てのzに対して|f(z)-f(a)|<εとなるとき、fはaで連続という。 lim(f(z)-f(a))/(z-a)が存在し、一定値であるとき、これを微分係数f (a)という。なお、f (a)が存在するときfはaで連続である。 (正則)ある変域D内のどの点でもf (z)が存在するとき、fはDで正則という。 f が一意に決まる条件を考える。z=x+iy、f(z)=u(x,y)+iv(x,y)とし、∂u/∂x、∂v/∂y、∂u/∂y、∂v/∂xは連続(★)と仮定する。平均値の定理から(f(z+d)-f(d))/d={h(u_x+iv_x)+k(u_y+iv_y)}/(h+ik)なので、∂u/∂x=∂v/∂y、∂u/∂y=-∂v/∂x(CR方程式)が十分条件である。fが正則ならば★は満たされるので、結局、「fが正則⇒CR方程式」が分かる。 fを正則関数とすれば、f (z)=∂u/∂x+i∂v/∂x=-i∂u/∂y+∂v/∂y=∂f/∂x=-i∂f/∂y。よってCR方程式は∂f/∂x+i∂f/∂y=0とも表せる。 CR方程式⇒△u=△v=0(ここで△=∂^2/∂x^2+∂^2/∂y^2)。すなわち、正則関数の実部、虚部は同じ微分方程式を満足する。 (有理整関数)w in C[z]のこと。 a_0w^n+a_1w^{n-1}+…+a_n=0(a_0,...,a_n in C[z])を満たすwを代数関数という。 上でn=1の場合、wを有理関数という。すなわちw=a/b a,b in C[z]。 有理整関数がC上正則であることは、通常の微分の手続きをしてみれば分かる。有利関数についても、分母が0でない変域上であれば正則である。 代数関数でない関数は超越関数という。例えば、exp(z)、cos(z)、sin(z)等がある。(ここでは級数で定義) 一般にベキ級数は収束域で項別微分ができるので、その収束域上で正則である。→ exp(z)、cos(z)、sin(z)はC上正則である。 exp(z)は絶対収束級数なので、級数の積は意味を持つ。計算によりexp(z_1+z_2)=exp(z_1)exp(z_2)が示せる。特に、exp(x+iy)=exp(x)(cos(y)+isin(y))である。→ exp(z)は周期2πiを持つ。 指数関数の逆関数を対数関数といい、logzで表す。ligz=u+ivとかくと、z=exp(u+iv)=exp(u)(cos(v)+isin(v))。z=r(cosφ+isinφ)と書けば、r=exp(u),v=φ+2πnである。つまりligz=exp(u)+2πin。 logzは一つのzに対して無数の複素数が対応する多価関数である。 z^a a in R を、exp(alogz)で定義する。logzが多価関数なのでz^aも一般的には多価関数である。 等角写像 (例1)w=az+b 直線→直線、円→円 (例2)w=1/z 直線及び円→円 (例3)w=exp(z) 直線→円または半直線 (例4)w=cosz x=const→双曲線、y=const→楕円 (例5)w=1/2(z+1/z) (例6)w=tanz
https://w.atwiki.jp/ce00582/pages/1811.html
効用関数 プログラム
https://w.atwiki.jp/stat_semi/pages/32.html
Rには豊富な関数が用意されていますが、それでも全ての要求に答えてくれるわけではありません。例えば測定機器からの出力を何らかの計算式にしたがって変換したいというような場面はしばしばあると思いますが、そんな状況のための関数がRに入っているはずもありません(いや、まあモノによっちゃ入っているかもしれないのが恐ろしいところですが)。 そんなわけで自前の関数が作りたいところです。 Rでは関数の作成がかなり簡単にできます。すでに関数の使い方を知っているなら特別覚えることもないくらいです。 自前の関数が作れると、例えば教科書に載っている数式がどんなグラフを描き出すのか?といったことも簡単に調べられるようになります(Rでは、繰り返し処理を含まない関数はplot関数やcurve関数でグラフ化が可能です)。 目次 関数を作る関数複数行の処理と返り値 関数の例フィボナッチ数の計算for文を使った解法 再帰呼び出しを使った解法 一般項を求める式を用いた解法 まとめ 関数を作る関数 Rでは関数も関数によって作成できます。その名もfunction関数。そしてfunction関数により作成された関数はベクトルなどと同様にオブジェクトへ代入できます。というか代入しないと使えません。 使い方はこんな感じです。 関数名 - function(関数内で使う引数) 関数本体 とりあえず何か関数を定義してみましょう。 まずはx,yという2つの引数を与えるとその合計を返す関数を作ってみましょう。 f - function(x, y) x+y これで関数ができました。使い方は他の関数と同様です。 f(2, 10) [1] 12 基本的にはこれで説明終わりなんですが、ちょこちょこ補足を加えていきましょう。 複数行の処理と返り値 まず関数本体が複数行にわたる場合です。これはfor文などと同様に、{}で括ってしまえばOkです。 関数 - function(引数){ 処理1 処理2 : : 処理最後 } そしてこの場合、最後の処理の結果が返ってきます。この返ってくるモノのことを「返り値」と呼びます。例えば次のような関数を定義したとしましょう。 f - function(x){ x x+1 x+2 x+3 } この場合、引数として与えた数値に3を加えた値が返り値となり、出力されます。 f(3) [1] 6 また、返り値が代入操作などの場合、出力は行われません。 f - function(x){ z - x } このとき、この関数は何もできません。一見するとzというオブジェクトを作って、その中にxに与えられた数値を代入するという操作をしそうなんですが… f(10) z エラー: オブジェクト "z" は存在しません 関数の中で生成され、使われるオブジェクトは「ローカル変数」と呼ばれ、関数の外で生成されたオブジェクト(これを「グローバル変数」と呼びます)には何の影響も与えません。ですから、関数を定義するときに「どこかで作ったオブジェクトと名前がかぶってしまうかもしれない><」とか不安に思う必要はありません。 また、返り値はreturn関数を使うことで明示的に指定することもできます。関数中でreturn関数が実行された場合、その時点で関数はストップします。 f - function(x){ x - x+1 return(x) #ここで終了! x - x+2 x - x+3 } f(10) [1] 11 この関数の場合は後半の2行は絶対に実行されないわけです。 結局返り値はどうやって指定すればいいのさ?という話ですが、関数があんまり複雑でないのなら次のようにするのがオススメです。 f - function(x){ x - x+1 x - x+2 x - x+3 x } 「外」でやるのと同じです。中身を見たいオブジェクトの名前を最後に呼んでやると。オブジェクトじゃなくて数式とかでもOKです(代入操作では駄目ですが)。 f - function(x){ x + x^2 + x^3 } ただ、多少複雑な関数になってくると(例えばif文やfor文を内部に含むような場合)return関数で強制的に終了させたくなる場合もありますから、returnを使うとその場で関数を終わらせることができるということも覚えておいてください。また、何が返り値なのかをはっきりさせたい時にも有効です(ただ複数の値を返そうとすると怒られます)。 関数の例 フィボナッチ数の計算 ここでは関数の例としてフィボナッチ数を挙げます。フィボナッチ数とは隣り合う2数を足し合わせたものが次の数値になる、という性質を持った数列です。つまり、 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89... といった数列です。性質を理解するのは簡単だと思いますが、問題はこの数列の一般項を求めよ、というものです。一般項というのは数列のn番目の値という意味です。これを例えばという文字と添え字を使って表現することにしましょう。例えばならば数列の3番目の値を示すので、です(数列は0から数えます。つまり。)。 これを数式で表現すると次のようになります。 0番目の値と1番目の値は最初に0と1であると定義するわけです。そして、以降のについては1つ前の値と2つ前の値を足し合わせることで計算します。 この一見簡単そうな問題が、いくつかの重要なプログラミング技術を学ぶ機会を与えてくれます。できればここからの説明はよく理解できるまで何度も読み直し、何度も実際に実行してみてください。 for文を使った解法 それでは実際に関数を作ってみましょう。上の定義を見ると、とからスタートして、頑張って足し算を繰り返せば任意のまでたどり着けそうな気がします。というわけで足し算を頑張りましょう。まずはfor文を使って頑張ります。関数化するのはひとまず置いておいて、とりあえずフィボナッチ数を計算するプログラムを書きましょう。 n - 10 #求めたいフィボナッチ数 Fn2 - 0 #n-2項の値(マイナス記号"-"はオブジェクト名に使えない)はじめなのでF0の値。 Fn1 - 1 #n-1項の値。はじめなのでF1の値。 for(i in 2 n){ #F0、F1は分かっているので、F2の値の計算からスタート Fn - Fn2 + Fn1 Fn2 - Fn1 #2つ前の値を1つ前の値に置き換え Fn1 - Fn #1つ前の値を今計算した値に置き換え(次の項は新しいFn2,Fn1で計算される) } Fn #Fnを表示 実行してみると、この場合は55という値が返ってきます。最初に示したように、フィボナッチ数の10番目は55ですから、確かにこのプログラムでフィボナッチ数が計算できるようです。というわけで関数化しましょう。関数化といっても今のプログラムのどこかを適当に引数として、全体を中括弧で括るだけです。この場合は「求めたいフィボナッチ数」を引数にするのが適当でしょう。 my.fib.1 - function(n){ Fn2 - 0 #n-2項の値(マイナス記号"-"はオブジェクト名に使えない)はじめなのでF0の値。 Fn1 - 1 #n-1項の値。はじめなのでF1の値。 for(i in 2 n){ #F0、F1は分かっているので、F2の値の計算からスタート Fn - Fn2 + Fn1 Fn2 - Fn1 #2つ前の値を1つ前の値に置き換え Fn1 - Fn #1つ前の値を今計算した値に置き換え(次の項は新しいFn2,Fn1で計算される) } Fn #Fnを表示 } これで関数完成です。といいたいところですが、これではnに0と1を与えた場合に正しい値が帰ってきません。nに0を与えた場合は0を、nに1を与えた場合は1を返して強制終了するようにしましょう。強制的にストップさせるのはreturnを使うのでした。 my.fib.1 - function(n){ if(n==0) return(0) #0を与えられたときは0を返して終了 ← 追加 if(n==1) return(1) #1を与えられたときは1を返して終了 ← 追加 Fn2 - 0 #n-2項の値(マイナス記号"-"はオブジェクト名に使えない)はじめなのでF0の値。 Fn1 - 1 #n-1項の値。はじめなのでF1の値。 for(i in 2 n){ #F0、F1は分かっているので、F2の値の計算からスタート Fn - Fn2 + Fn1 Fn2 - Fn1 #2つ前の値を1つ前の値に置き換え Fn1 - Fn #1つ前の値を今計算した値に置き換え(次の項は新しいFn2,Fn1で計算される) } Fn #Fnを表示 } 2行追加しました。ここではif文を使っています。if文は次のような構造になっています。 if(条件式) 式 括弧の中の条件式?が真のとき(TRUEである、もしくは0以外の値をとるとき)にそれに続く式が実行され、括弧の中の条件式が偽のとき(FALSEである、もしくは0のとき)には何も実行されません。 では実際にこの関数を実行してみましょう。 my.fib.1(0) [1] 0 my.fib.1(1) [1] 1 my.fib.1(2) [1] 1 my.fib.1(3) [1] 2 my.fib.1(4) [1] 3 my.fib.1(5) [1] 5 my.fib.1(6) [1] 8 my.fib.1(7) [1] 13 my.fib.1(8) [1] 21 my.fib.1(9) [1] 34 my.fib.1(10) [1] 55 my.fib.1(20) [1] 6765 my.fib.1(30) [1] 832040 my.fib.1(40) [1] 102334155 my.fib.1(50) [1] 12586269025 my.fib.1(100) [1] 3.542248e+20 どうやら上手く計算できているようです。というわけでfor文を使った場合の解法は終了です。ポイントはif文で特定の引数のときの返り値を固定してしまったところです。 再帰呼び出しを使った解法 再帰呼び出しと呼ばれる方法があります。これは、今定義している関数の中で、まさに今定義しているその関数を呼び出すという一見特殊な方法です。何を言っているか分からないかもしれませんが、百聞は一見にしかず、です。関数の例を見てみましょう。 my.fib.2 - function(n){ if(n==0) return(0) #0のときは0 if(n==1) return(1) #1のときは1 my.fib.2(n-1) + my.fib.2(n-2) #それ以外のときは前2つの値を足す } 0を与えられた場合と1を与えられた場合にそれぞれ定義されている値を返すのは、for文を使った場合と同じです。問題は3行目です。my.fib.2という関数の中で、my.fib.2という関数を呼び出しています。当然同じ形の関数を呼び出しているわけですから、呼び出された関数の中でもまたmy.fib.2を呼び出しているわけです。これではいつまでたっても関数を呼び出し続けてしまうような気がしますが、1行目と2行目に注目してください。nが0のときと1のときはそこで処理が終了しますから、それ以上は関数を呼び出しません。つまり、my.fib.2の関数が有無を言わさず値を返すn=0のときとn=1のときまで遡ったら、そこから次々にmy.fib.2関数へ引数が渡されていくわけです。結局やっていることは足し算の繰り返しです。 また、式の形にも注目してください。最初に説明したフィボナッチ数の式、 に良く似ている、というか全く同じです。この数式中でもを計算するのに、といった「自分自身」を呼び出しています。このような形の式を漸化式と呼びます。再帰呼び出しは漸化式をそのままプログラムの世界に持ち込んだものだと見ることができます。 再帰呼び出しによる関数は仕組みさえ理解してしまえば非常に見通しがよく、漸化式をほとんどそのまま打ち込めるので使い勝手がいいように思えます。しかしながら、再帰処理には重大な問題があります。計算測度が極めて遅いのです。 さきほどのmy.fib.1というfor文を使った関数では、桁数が足りなくてInf(無限大)を返してくるくらいの値(およそ1000ですが)を与えたとしても答えは即座に返ってきます。しかし、今再帰呼び出しを使って定義したmy.fib.2という関数は、の値を計算するのに10秒かかりました。環境によってはもっとかかると思います。そしては数分待っても計算が終わりませんでした。 このように再帰呼び出しはすこし呼び出しの階層が深くなると驚くほど重くなる傾向がありますから、使用は浅い再帰の場合に限る、もしくは後で別の方法へ書き換えることを前提として使用するようにしましょう。 一般項を求める式を用いた解法 実はフィボナッチ数というのは一般項を求める式を導くことが出来ます。つまり、やなどといった「自分自身」を使うことなく、の中のnという値だけでの値が分かるような数式を作ることができるのです。導出は結構面倒なのでここではやりませんが、一般項は次の式で求めることができます。 ルートとかが入っていて、本当にこんなのでn番目のフィボナッチ数が分かるのかと疑いたくなる式ですが、まあとにかくこれで出てくるのですからここは受け入れてください。 それで、これをそのまま関数にしてやります。 my.fib.3 - function(n){ 1 / sqrt(5) * ( ((1+sqrt(5))/2)^n - ((1-sqrt(5))/2)^n ) } これでフィボナッチ数を求める関数が完成です! … で、この方法のポイントは何かというと、for文も再帰繰り返しも使ってないという点です。先ほどまでに定義したmy.fib.1とmy.fib.2はいずれも繰り返し処理を含んでいますから、引数としては自然数一つのみしか与えることができませんでした。my.fib.3は整数を引数に取ることができ(つまり負のフィボナッチ数も分かるのです。負のフィボナッチ数は正と負の数が交互に出現し、ちゃんと定義どおり前の2数の和になっています。)、さらに引数としていくつもの数値をまとめたベクトルを与えることができます。 また、グラフを直接書けるのもこの方法の利点です。 plot(my.fib.3, -10, 10, type="p") my.fib.1、my.fib.2ではそれぞれ計算結果を何かオブジェクトに収納しておいて、それからそのオブジェクトについてプロットする、という形式を採らないといけません。 ですから、最も使い勝手がいいのはfor文も再帰も使わないこの方法です。 が、最初に言ったように一般項を求めるのは面倒です。それにもしかしたら見つからないかもしれません。 まとめ というわけでまとめです。 繰り返し処理は基本的に重くなる。 繰り返しなし for文による繰り返し 再帰繰り返し の順に重い。 できれば繰り返し処理を含まないように気をつける。 また、今回の場合はfor文を使っても比較的処理が軽く感じたと思います。しかし、繰り返し回数がを超えるようなオーダになってきたとき、あるいはfor文の中でfor文を回すような処理をするときには処理の重さが問題となってくると思います。
https://w.atwiki.jp/wiki8_m2/pages/19.html
4.2 単一行関数のネスト 単一行関数のネストの深さに制限はない グループ関数のネストは第2レベルまで 4.4 文字関数 関数 実行例 意味 結果 INITCAP INITCAP( ORACLE Master ) 指定文字列の先頭を大文字に、以降を小文字に変換 Oracle Master INSTR INSTR( GoodMorning ) 指定文字列の数値位置を表示 5 LPAD LPAD( Good ,6, * ) 左に文字列を埋め込む **Good RPAD RPAD( Good ,6, * ) 右に文字列を埋め込む Good** TRIM TRIM( G FROM GoodMorning ) 先行/後続文字列の切捨て oodMorning 4.9 TRUNC関数の切捨て桁位置 TRUNC関数では、指定された数値の位置の1つ右の桁を切り捨てる。 TRUNC(123.456,2) 少数点以下2桁目の一つ右、つまり小数点以下3桁目を切り捨て 123.46 TRUNC(123.456,-2) 小数点以下-2桁の一つ右、つまり10の位を切り捨て 100 ROUND関数も同様の桁位置を四捨五入する 4.13 日付データ操作のポイント 日付-日付=日数となる 日付+日付はエラーになる 4.14 日付関数 関数 実行例 意味 結果 MONTH_BETWEEN MONTH_BETWEEN( 2000-08-25 , 2000-05-10 ) 日付間の月数 3.48387097 ADD_MONTH ADD_MONTHS( 2000-08-25 ,-3) 月数を加減算 2000-05-25 NEXT_DAY NEXT_DAY( 2002-08-22 , 月曜日 ) 指定曜日の次の日付 2002-08-26 LAST_DAY LAST_DAY( 2002-02-01 ) 指定月の最終日 2002-02-28 4.15 NEXT_DAY関数の第2引数 NEXT_DAY関数の第2引数として、曜日を文字列で指定するだけでなく、数値で指定することもできる。その場合、日曜が1、月曜日が2、最後の土曜日が7である。 NEXT_DAY( 2002-08-22 , 月曜日 )とNEXT_DAY( 2002-08-22 ,1)は同じ意味 4.17 日付についてのROUND/TRUNC 日付についてもROUNDまたはTRUNC関数を使用できる。 第2引数を省略した場合、時間を四捨五入(切捨て)する[ DAY を指定するのと同じ] ◆日を四捨五入 ROUND( 2002-07-16 , MONTH )・・・(結果)2002-08-01 ◆月を切り捨て TRUNC( 2002-07-16 , YEAR )・・・(結果)2002-01-01 4.19 日付書式要素 年 YYYY 4桁の年 YY 年の下2桁 月 MM 2桁の月(01~12) MON 月の省略形(JAN~DEC) MONTH 完全な月(JANUARY~DECEMBER) 日 DD 日(01~31) 曜日 DY 曜日の省略形(SUN~SAT) DAY 完全な曜日(SUNDAY~SATURDAY) 時間 HH 12時間制の時間 HH24 24時間制の時間 MI 分 SS 秒 AMまたはPM 正午標識 A.M.またはP.M. ピリオド付きの正午標識 4.21 FM修飾子 FMとはFill mode(埋め込みモード)のことである。 ◆FM修飾子はTO_CHAR関数の中で指定することができる。 ◆日付書式を修飾した場合、埋め込み空白と先行ゼロを回避する。 ◆FMは複数指定できる。1つめのFM以降は回避を有効、2つめ以降は無効、3つめ以降は有効というように、回避の有効/無効を切り替える。 【日付書式の例(09-03-04 09 15 00)】 fm修飾子の有無 書式 表示 なし MM-DD-RR HH24 MI SS 09-03-04 09 15 00 あり fmMM-DD-RR HH24 MI SS 9-3-4 9 15 0 あり(複数) fmMM-DD-RR fmHH24 MI fmSS 9-3-4 09 15 0 【書式DDSPTH/Ddspth】 書式DDSPTHは日付を大文字フルスペルの序数で表示する。(例:FIRST) 書式Ddspthは先頭だけを大文字にし、古スペルの序数で表示する。(例:First) 4.22 FX修飾子 FXとはFormat exact(厳密な書式一致)のことである。 ◆FX修飾子はTO_DATE関数の中で指定できる。 ◆文字引数が日付書式と厳密に一致しなければならないことを指定する(大文字・小文字を除く) →通常は無視される、文字引数の余分な空白や選考行ゼロなどが、FXによりエラーになる。 4.28 TO_DATE関数での月日/時間の省略 ◆TO_DATE関数にて、月日を省略して日付データを入力すると、月は当月、日は1日になる。 ◆時間を省略した場合、デフォルトで午前0時0分0秒となる。 ◆HH書式では深夜12時はAM12 00、正午はPM12 00となる 4.31 NULLを処理できる関数 関数 実行例 意味 NVL NVL(comm, 0) comm列がNULL値の場合は0を戻す NVL2 NVL2(comm, sal + comm, 0) comm列がNULLの場合は0、NULL以外の場合はsal+comm NULLIF NULLIF(ename, mail) enameとmailが等しい場合はNULL、等しくない場合はename COALESCE COALESCE(comm, sal, 15) リストの最初のNULLでない式を戻す DECODE関数はNULLを扱うことはできない! ◆DECODE関数と同じ意味でCASE文を使うこともできる CASE [式] WHEN 条件1 THEN 値1 [WHEN 条件2 THEN 値2 ・・・] [ELSE デフォルト値] END
https://w.atwiki.jp/abwiki/pages/32.html
関数とは 関数とは一連の処理に名前をつけて簡単に呼び出せるようにしたもの。 呼び出すと言ってもメッセージ通信をするわけではないので勘違いしないように。 AB4で定義できる関数はstdcallだけです。よって可変引数は諦めて下さい。 引数とパラメータ ABのヘルプでは同じものとして扱っていますが、他の言語では異なる意味をもちます。 簡単に言えば次のようになります。 引数(仮引数) 関数を呼び出す側の実際の値。 パラメータ(実引数) 呼び出された側の変数 Function fa(a As Double) As Long fa = a * 4.5 End Function fa(12.5) このとき、fa関数のaはパラメータ、呼び出し側の12.5が引数です。
https://w.atwiki.jp/excelmasters/pages/24.html
関数とは何か 関数の基礎 便利な関数 エラー値を表示させない 関数のネスト フォームとの連携