EntityFunction
EntityFunction[x,body]
単一の名義的パラメータ x を持つ関数で,EntityValueおよび関連関数で使われる.
EntityFunction[{x1,x2,…},body]
名義的パラメータのリストを持つEntityFunctionである.
詳細
- EntityFunction[x, body]はEntityPropertyと全く同じように動作し,EntityValueの中で直接使うことができる.
- EntityFunction[x,body]の x は,通常は,一度に単一のEntityにしか結び付けられない.AggregatedEntityClassの第2引数は,名義的パラメータが entities の各グループに結び付けられるので,この規則の例外である.
- リレーショナルデータベースがバックエンドの実体についてのAggregatedEntityClass の第2引数のコンテキストでは,次の集計関数がサポートされている.
-
Min 最小値 Max 最大値 Length 値の数 Total 値の合計 Mean 平均値 StandardDeviation サンプルの標準偏差 Variance サンプルの分散 - EntityFunction[{left,right},body]はCombinedEntityClassの条件として現れることができる.ここでは,left はCombinedEntityClassの第1引数の各Entityに結び付けられ,right は第2引数の各Entityに結び付けられる.
- リレーショナルデータベースがバックエンドとなるEntityStoreに登録された実体を扱う場合は,次の形式しかSQLにコンパイルできない.
-
a+b 数,日付,あるいは時間数量間の加算 a-b 数あるいは日付の間の差 a*b 数と数の乗算 a/b 数と数の比 a^b 数と数のベキ Quotient[a,b] 整数の割り算 Mod[a,b] 整数間の除算数の余り Sqrt[a] 平方根 Exp[a] 数の指数 Log,Log10,Log2 底の異なる対数 Abs[a] 絶対値 OddQ[a],EvenQ[a] 整数の偶奇性のチェック ab,a>b,a≠b,… 数,日付,文字列の間の比較 a&&b,ab,!a,… ブール代数 If[a,b,c] IF文 Which[…] WHICH文 MissingQ[a] 要素が欠けていないかどうかチェックする Length[list]0 リストが空ではないかどうかチェックする OrderedQ[a,b] 文字列がアルファベット順かどうかチェックする MemberQ[list,a] 要素がリストに含まれているかどうか,あるいは実体がクラスに含まれているかどうかをチェックする StringJoin[a,b,…] 文字列の連結 StringMatchQ[…],StringStartsQ[…],… 基本的な文字列マッチング操作 Now,Today 現在の日付を得る AllTrue,AnyTrue リストに対するブール演算 SelectFirst[list,Not@*MissingQ] リスト中で欠落していない最初の値を選択する BitNot,BitAnd,BitOr,BitShiftLeft,… ビット演算 Sin,Cos,Tan,… 三角関数 ArcSin,ArcCos,ArcTan,… 三角関数の逆関数 Sinh,Cosh,Tanh,… 双曲線関数 ArcSinh,ArcCosh,ArcTanh 双曲線関数の逆関数 Round,Floor,Ceiling 丸め関数 Min,Max 最大値と最小値(外部集計) StringTake,StringDrop 列の一部を抽出する(UpToのサポートを含む) ToString[a] 数または日付を文字列に変換する N[a] 整数を実数に変換する IntegerPart[a] 実数の整数部分を抽出する FromDigits[a] 文字列を整数に変換する Boole[a] ブール値を0または1に変換する Interpreter["StructuredDate"][a],Interpreter["StructuredTime"][a],Interpreter["StructuredDateTime"][a] 文字列を日付または時間オブジェクトに変換する UnixTime[a] 日付オブジェクトを時間または数に変換する FromUnixTime[a] 数を時刻付きの日付オブジェクトに変換する JulianDate[a] 日付オブジェクトを数に変換する FromJulianDate[a] 数を日付オブジェクトに変換する DateValue[a,"SecondsFromMidnight"] 時間オブジェクトを数に変換する DateValue[UnixTime[a],"TimeObject"] 数を時間オブジェクトに変換する - リレーショナルデータベースがバックエンドの実体のコンテキストでは,上記の関数はWolfram言語の対応関数よりも機能が制限されるかもしれない.例えば,SQLは複素数をサポートしない.このため,数値関数の定義域は実数値に限られる.記号評価は通常は使用できない.精度追跡の意味も変わるかもしれない.
例題
すべて開くすべて閉じる例 (3)
EntityFunctionはEntityPropertyのように,単一の実体に直接適用できる:
EntityFunctionをFilteredEntityClassの条件として使う:
特性と関係 (6)
ExtendedEntityClassの中で使って新たに計算された特性を加える:
FilteredEntityClassの中で,特定の実体を選択するための述語として使う:
SortedEntityClassの中で分類基準として使う:
AggregatedEntityClassの第2引数の中でアグリゲータとして使う:
AggregatedEntityClassの第3引数の中でグループ化の基準として使う:
CombinedEntityClassを結合基準として使う:
考えられる問題 (1)
SQLは,Wolfram言語がサポートする全操作をサポートする訳ではない:
SQLの数学操作は実数しかサポートしない.複素数を返す操作を行うと,バックエンドによってMissingになるかランタイムエラーになるかするかもしれない:
SQLは,特性またはEntityFunctionからスカラー以外のものを返すことはサポートしていない:
テキスト
Wolfram Research (2019), EntityFunction, Wolfram言語関数, https://reference.wolfram.com/language/ref/EntityFunction.html (2020年に更新).
CMS
Wolfram Language. 2019. "EntityFunction." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/EntityFunction.html.
APA
Wolfram Language. (2019). EntityFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/EntityFunction.html