Python における Self とは: 実際の例
Python における Self とは: 実際の例
組み合わせ分析と呼ばれるものについて深く掘り下げてみたいと思います。これは、所定のルールに従ってセットの要素を選択して配置することとして定義できます。難解に聞こえるかもしれませんが、実際には非常に実用的な使用例がいくつかあります。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。
このチュートリアルでは、LuckyTemplates の Power Query を使用してこれを行う方法を説明します。
目次
組み合わせ分析の事例
この組み合わせ分析の例では、6 つの倉庫のリストがあり、3 つの一意のセットをすべて生成する必要があるというタスクが行われました。非常に簡単な問題のように思えますが、これは言語が本当に重要なケースの 1 つです。
ここでの正解は、216、120、56、または 20 のいずれかです。したがって、その一意のセットを定義する方法と規定したルールによっては、セットを正しく取得できなかった場合、10 倍も誤差が生じる可能性があります。
したがって、ここでは 2 つの側面が重要になります。1つ目は「順番は重要ですか?」では、3 つの 3 セットについて話しているとき、ABC は BCA に相当するのでしょうか? では、順序は重要なのでしょうか?順序が重要である場合は、順列について話します。
順序が重要になる可能性のある順列の良い例は、移動時間の場合です (ここでは倉庫のコンテキストについて話しています)。倉庫 A、倉庫 B、倉庫 C の順に訪問する場合、交通渋滞による移動時間、つまり各倉庫に到着する時間は、注文によって大きく異なる可能性があります。そこであなたは彼らを訪問します。
その裏を返せば、「順序は関係ない」ということです。この場合、順列ではなく組み合わせについて話しています。ここでの一般的な使用例は距離です。たとえば、カラスが飛ぶとき、A から B、C までの距離は、B から C、A までの距離と何ら変わりません。これらは組み合わせのコンテキストで考慮されます。
組み合わせは互いに重複しているとみなされます。一方、順列のコンテキストでは、それらは一意であるとみなされます。
ご覧のとおり、コンビネーション ロックは実際には順列ロックである必要があります。その場合、順序が重要になり、組み合わせではなく順列になります。
重要な 2 番目の質問または側面は、「アイテムを一度選択すると、再度選択できますか?」です。たとえば、最初の倉庫として A を選択した場合、もう一度 A を選択できますか、それとも毎回独自の要素を選択する必要がありますか?
ここで使用する用語は「交換あり」または「交換なし」です。したがって、アイテムが再び選択できる場合、それは交換あり、つまりあなたがそれを選択することを意味します。そしてある意味では、それは選択ビンに戻され、再び選択されることになります。答えが「いいえ」の場合は、代替品はありません。
したがって、このソリューションでは、置換による置換が最も制限が少ないことがわかります。これで 216 個の固有のセットが得られます。そして、置換なしの組み合わせが最も制限的で、20 通りになります。
これらの数式は、 Power Query の結果を確認する方法としてのみ使用します。したがって、216、120、56、20 を覚えておきます。次に、Power Query にジャンプして、この組み合わせ分析がどのように行われるかを見てみましょう。
組み合わせ分析: Power Query での順列
Power Query では、6 つの名前付きウェアハウスを含む非常に単純なケースを示します。
そして、私はこの Power Query M 関数を開発し、組み合わせと順列を処理するために使用しました。
まず、最初のユースケースを開発します。これは、最も制限の少ないreplace を使用した順列です。Power Query でこれを行う方法は、このWarehousesテーブルを取得して参照することです (DAX では、CROSSJOINを使用します)。
これをPer w Rep (置換を伴う順列)と呼びます。
Power Query で相互結合を行う方法はいくつかあります。私が見つけた最も簡単な方法は、 [列を追加]、[カスタム列] の順に移動することです。カスタム列の式で、Warehousesテーブルを参照します。
[OK] をクリックすると、ネストされたテーブルが生成されることがわかります。
次に、それを展開し、[元の列名をプレフィックスとして使用する]のクリックを解除します。
そして、このLocation.1を取得します。これは、2 つの可能なすべての組み合わせです。したがって、最初の 6 つの参照を他の 6 つの組み合わせに対して使用します。2 番目の 6 つは、36 個の異なるセットができるまで同じことを繰り返します。
これをもう一度繰り返すことで 3 つ目を実行できます。そこで、「列の追加」、次にカスタム列、そして「ウェアハウス」の順に進みます。
そして、置換を伴う順列として 216 行が得られます。
ここから下を見ると、3 列、216 行であることがわかります。
次の使用例は、置換なしの置換です。ここで考えているのは、基本的に、繰り返される要素を持つすべてのものです。この表では、行 1 から行 8 までを見ていきます。
そのために、この関数fxSortAndIsDistinctを見てみましょう。
Advanced Editor では、これが基本的にテーブルを要求し、SortLocsを実行していることがわかります。ただし、ここで「置換あり」または「置換なし」に関して重要なのは、これがIsDistinct関数であるということです。これは基本的に要素のリストを取得し、それが個別のものであるか、項目のリスト内に重複があるかどうか、真か偽かを判断するだけです。
ここでPerm w Repを選択し、Invokeを押します。
これにより、2 つの新しい列SortLocsとIsDistinctが得られます。ここで、最初の 8 レコードには重複があり、9 番目のレコードで初めて明確な . が確認されたことを思い出してください。このため、ここで 9 行目が true として表示される最初の行となります。
階乗計算で得られた数値を思い出してみると、区別できないレコードを除外すると 120 件のレコードが予想されます。そこで、ここでフィルタリングを行って FALSE を取り除いてみましょう。
これを実行すると、期待していた 120 行がここに表示されます。ここで、これを「Perm wo Rep (置換なしの順列)」という名前に変更しましょう。
組み合わせ分析: Power Query での組み合わせ
次に、 replace との組み合わせを実行します。これを行うには、プロセスを再度実行し、ステップ (呼び出された関数) を繰り返すだけです。したがって、重複があるのは問題ありませんが、同じ要素を持つが順序が異なるセットは望ましくありません。
この場合、組み合わせについて話しているとき。ABC が等しい、BCA が CAB に等しい、ということを思い出していただければ、これらはすべて相互に重複していると見なされます。そして、それを決定する方法は、Sort 関数 ( fxSortAndIsDistinct ) を使用することです。
詳細エディターの関数に戻ると、2 番目の列でそのリストを取得し、アルファベット順に並べ替えたことがわかります。次に、そのリストからカンマで区切られた値を抽出しました。これで、各セットがアルファベット順にソートされました。重複を見つけやすいように順序を正規化しました。
この呼び出された関数に戻ると、ここでは 56 個のレコードを探していることに注意してください。そこで、この種の場所 ( SortLocs )を取得し、重複を削除します。
これで、56 行が得られます。
これが 3 番目の使用例です。これをCC w Rep (置換との組み合わせ)という名前に変更しましょう。
置換による置換 (Perm w Rep) テーブルを再度取得し、同じパターン (呼び出し) を実行して、これを締めくくりましょう。次に、重複(SortLocs 列) を削除します。これは組み合わせであり、順序は重要ではないためです。これは置換なしなので、個別の list のみが必要です。したがって、IsDistinct 列の FALSE をクリックしてオフにします。
これで、20 件のレコードが得られます。これで 4 つのユースケースがすべて完成しました。
LuckyTemplates で日付テーブルの列を並べ替える LuckyTemplates の
M コードの初心者ガイド Power
BI で日付テーブル関数をテーブル クエリに変換する
結論
これで 4 つのユースケースがすべて完成しました。置換要素や個別の要素を制御できる組み合わせ分析を開発するという点で、これがいかに強力であるかがわかります。
これは、部分的に置換する場合や、最初の要素では重複した要素を選択するが、2 回目では選択しない場合など、より複雑な場合にも当てはまります。これはPower Query内で適切に処理できます。
これがお役に立てば幸いです。さらに詳しい内容については、以下のリンクをご覧ください。このチュートリアルの完全なビデオを以下で見ることもできます。
ではごきげんよう!
Python における Self とは: 実際の例
R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。
この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。
このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。
この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。
LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。
LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。
このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。
これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。
LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて