Generate Attributes
概要
この演算子は、数式を使用して新しいユーザー定義の属性を構築します。
詳細
Generate Attributes演算子は、数式を使用して、入力ExampleSetの属性と任意の定数から新しい属性を構築します。入力ExampleSetの属性名は、新しい属性の数式で変数として使用される場合があります。この演算子の適用中に、これらの式は各例で評価され、これらの変数には例の属性値が入力されます。したがって、この演算子は、新しい属性の新しい列を作成するだけでなく、それらの列をそれらの属性の対応する値で埋めます。式で変数が未定義の場合、式全体が未定義になり、「?」その場所に保存されます。
この演算子を適切に機能させるために、属性名にはいくつかの制限があることに注意してください。
- ダッシュ「-」またはその他の特殊文字を含む属性名、または定数と同じ名前(「e」または「pi」など)を持つ属性名は、角括弧で囲む必要があります(例:「[weird-name]」または「[pi]」 。
- 角かっこまたはバックスラッシュを含む属性名は角かっこで囲む必要があり、名前内の角かっこおよびバックスラッシュはエスケープする必要があります。たとえば、属性「a \ tt [1]の場合は「[a \\ tt \ [1 \]]」 ‘。
この演算子を適用したいが、ExampleSetの属性が上記の条件を満たさない場合、属性の生成演算子を適用する前に、名前の変更演算子を使用して属性の名前を変更できます。特定のスキーマに続く複数の属性を置換する場合、「置換による名前変更」演算子が役立つ場合があります。
多数の操作と関数がサポートされているため、豊富な式を作成できます。操作と関数のリスト、およびそれらの説明については、式の編集ダイアログを開きます。複雑な式は、複数の操作と関数を使用して作成できます。括弧を使用して操作をネストできます。
この演算子は、さまざまな定数もサポートしています(たとえば、「INFINITY」、「PI」、「e」)。ここでも、[式の編集]ダイアログで完全なリストを見つけることができます。操作で文字列を使用することもできますが、文字列値は二重引用符( “)で囲む必要があります。
入力
- サンプルセット (IOObject)この入力ポートには、ExampleSetが必要です。これは、添付のプロセス例の名前変更演算子の出力です。他の演算子の出力も入力として使用できます。
出力
- サンプルセット(IOObject)新しい属性を持つExampleSetは、このポートの出力です。
- オリジナル(IOObject)入力として指定されたExampleSetは、このポートを介して出力に変更せずに渡されます。これは通常、別の演算子で同じExampleSetを再利用するため、または結果ワークスペースでExampleSetを表示するために使用されます。
パラメーター
- function_descriptions新しい属性を生成するための関数のリストがここに提供されます。 範囲:
- keep_all trueに設定すると、元の属性はすべて保持されます。それ以外の場合は、出力ExampleSetから削除されます。 範囲:ブール
チュートリアルプロセス
さまざまな機能の説明による属性の生成
「労働交渉」データセットは、Retrieveオペレーターを使用してロードされます。
次に、Generate Attributesオペレータのパラメータを見てください。すべて保持パラメーターがチェックされているため、「労働交渉」データセットのすべての属性も、属性の生成演算子によって生成された属性とともに保持されます。
関数の説明パラメーターの[リストの編集]ボタンをクリックして、新しい属性を生成するために定義された関数の説明を確認します。 18個の新しい属性が生成されますが、これらの属性を生成するより良い方法があるかもしれませんが、ここでは、属性の生成演算子で使用可能なさまざまなタイプの関数の使用法を説明するために書かれています。各属性の機能の説明を読んでから、結果ワークスペースで対応する属性の値を確認して、完全に理解してください。この演算子によって作成された属性の説明は次のとおりです。
‘average wage-inc’属性は、wage-inc-1st、wage-inc-2nd、およびwage-inc-3rd属性値の合計を取り、合計を3で除算します。これにより、賃金増分の平均が得られます。これを行うより良い方法がありますが、この例はいくつかの基本的な機能の使用を明確にするために示されただけです。 「無視されたワーカーbool」属性はブール属性です。つまり、可能な値は「0」と「1」の2つだけです。この属性は、属性の生成演算子で「AND」や「OR」などの論理演算の使用法を示すためにここで作成されました。 3つの条件が満たされる場合、この属性は値「1」を想定します。まず、working-hours属性の値は35以上です。第二に、教育手当属性は「はい」に等しくありません。第三に、休暇属性の値は「平均」または「平均以下」です。これらの条件のいずれかが満たされない場合、新しい属性の値は「0」になります。 「対数属性」属性は、10を底とする対数関数と自然対数関数の使用法を示します。 「trigno属性」属性は、サインやコサインなどのさまざまな三角関数の使用法を示します。 ‘rounded average wage-inc’属性はavg関数を使用して賃金増分の平均を取得し、次にround関数を使用して結果の値を丸めます。 「vacations」属性は、replaceAll関数を使用して、「vacation」属性の値「generous」のすべての出現を「above-average」に置き換えます。 「deadline」属性は、If-then-ElseおよびDate関数の使用法を示します。この属性は、クラス属性の値が「good」の場合、現在の日付に25日を加えた値を想定しています。それ以外の場合は、現在の日付に10日を加えた日付を格納します。 「シフト完了」属性は、If-then-Else、random、floor、およびmissing関数の使用法を示します。この属性にはshift-differential属性の値がありますが、欠損値はありません。欠損値は0〜25の乱数に置き換えられます。「remaining_holidays」属性は、15からのstatutory-holidays属性値の差を格納します。「remaining_holidays_percentage」属性は、「remaining_holidays」属性を使用して残りの休日の割合を見つけます。この属性は、この属性の生成演算子で作成された属性を使用して、同じ属性の生成演算子で新しい属性を生成できることを示すために作成されました。 「定数」属性は、「e」や「PI」などの定数の使用法を示すために作成されました。 「カット」属性は、カット機能の使用法を示します。文字列を指定する場合は、この属性の式の最後の用語のように、二重引用符( “”)で囲む必要があります。属性の名前を指定する場合は、引用符で囲まないでください。式の最初の項は、「クラス」属性値の最初の2文字を切り取ります。これは、属性の名前が引用符で囲まれていないためです。式の最後の用語は、文字列「class」の最初の2文字を選択します。文字列 ‘class’の最初の2文字は ‘cl’であるため、clはこの属性の値の最後に追加されます。中間用語は、最初の用語と最後の用語の結果の間に空白スペースを連結するために使用されます。 ‘index’属性は、インデックス関数の使用法を示します。 「class」属性の値が「no」の場合、「o」は最初のインデックスであるため1が格納されます。 「class」属性の値が「yes」の場合、「o」はこの値に存在しないため、-1が格納されます。 「日付定数」属性は、日付定数の使用法を示します。 「期限」属性の日付が完全な形式で表示されますが、表示用に選択されるのは時間だけです。 「マクロ」属性は、関数でマクロを使用する方法を示します。 「マクロ評価」属性は、数字を含むマクロの使用方法を示します。マクロ関数%{}は常に文字列を返すため、数値を取得するにはeval関数または解析関数を使用する必要があります。 「式eval」属性は、eval関数の使用法を示します。たとえば、マクロ%{expression}からの式を含む文字列がある場合、eval関数を使用してこの式を評価できます。 「属性付きマクロ」属性は、#{}関数の使用法を示しています。属性の名前を含むマクロがある場合、#{attribute_macro}を使用して式でこの属性を使用できます。attribute_macroは属性名を含むマクロです。 eval(%{attribute_macro})を使用しても同じ結果になりますが、マクロに属性名が含まれていない場合、#{}関数は失敗しますが、eval(%{attribute_macro})はマクロに含まれるものを評価します。