問題タブ [set-operations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
database - DBIx::Class での操作の設定
DBIx::Class を使用して集合演算を実行する最良の方法は何ですか? クエリに基づいて検索先を作成することが 1 つの解決策であることがわかりましたが、条件はユーザーによって定義されるため、その場で検索先を作成することが最善の答えであるかどうかはわかりません。
基本的に、このタイプのクエリを DBIC に変換する必要があります。ここでcode
、attr_name
とvalue
はユーザーによって定義されます。
r - R のデータ フレームからデータ テーブルへのセット操作の移植: 重複した行を識別する方法は?
[更新 1: Matthew Dowle が指摘したように、私はdata.table
CRAN ではなく R-Forge でバージョン 1.6.7 を使用しています。の以前のバージョンでは、同じ動作は見られませんdata.table
。]
背景として:データフレームの行またはデータフレームのペア(つまり、各行はセット内の要素)でセット操作を行うために、いくつかの小さなユーティリティ関数を移植しています。たとえば、ユニーク - リスト、ユニオン、これらは Matlab のintersect(...,'rows')
、setdiff(...,'rows')
などを模倣しており、R に対応するものはないようです (R の集合操作はベクトルとリストに限定されますが、行列やデータ フレームの行には限定されません)。これらの小さな関数の例を以下に示します。データ フレームのこの機能がパッケージまたはベース R に既に存在する場合は、提案をお待ちしています。
これらをデータ テーブルに移行してきましたが、現在のアプローチで必要な手順の 1 つは、重複した行を見つけることです。を実行するduplicated()
と、データ テーブルにはキーが必要であることを示すエラーが返されます。これは残念な障害です - 普遍的な解決策ではなく、計算コストを追加するキーを設定する以外に、重複したオブジェクトを見つける他の方法はありますか?
再現可能な例を次に示します。
次のエラー メッセージが表示されます。
コードはデータ フレームに対してそのまま機能しますが、各関数に pattern という名前を付けましたdt_operation
。
この問題を回避する方法はありますか? キーの設定は整数に対してのみ機能します。これは、入力データに対して想定できない制約です。では、データ テーブルを使用する賢い方法を見逃しているのではないでしょうか?
セットの要素がデータの行であるセット演算関数の例:
注 1: これらのヘルパー関数の使用目的の 1 つは、x のキー値が y のキー値にない行を見つけることです。x[y]
このようにして、またはを計算するときに NA が表示される場所を見つけることができますy[x]
。この使用法ではz_rbind
オブジェクトのキーを設定できますが、この使用例だけに限定したくはありません。
注 2: 関連する投稿として、データ フレームでの実行に関する投稿がありunique
ます。更新されたdata.table
パッケージで実行すると、優れた結果が得られます。これは、データ テーブルでの実行に関する以前の投稿です。unique
r - R: データフレームの 2 つの行から要素の交点を見つけるにはどうすればよいですか?
私は R を使い始めたばかりで、データフレームの 2 つの行から要素の交点を見つける方法を知りたいと思っています。私は試した
しかし、それは私に完全なナンセンスな答えを与えました(交差点にあったものを省略しながら、交差点にないもの)。
この問題にどのようにアプローチすればよいですか?
bash - 2 つのフォルダを比較し、一意のエントリを新しいフォルダにコピー/リンクします
2 つのソース フォルダーからすべての一意のファイルを新しい宛先フォルダーにコピーするにはどうすればよいですか?
セット操作として: 2 つのフォルダーの違いを計算するにはどうすればよいですか?
python - Python での dict オブジェクトの結合
dict
Pythonで 2 つのオブジェクトの結合を計算するにはどうすればよいですか?(key, value)
結果にペアが存在する場合、いずれかの dict である場合 (重複がない限り) key
?in
たとえば、 と の結合{'a' : 0, 'b' : 1}
は{'c' : 2}
です{'a' : 0, 'b' : 1, 'c' : 2}
。
できれば、どちらの入力も変更せずにこれを行うことができますdict
。これが役立つ例:現在スコープ内にあるすべての変数とその値の辞書を取得する
sql - 2 つのテーブルで記録された異なるものを抽出する
と の 2 つのテーブルがtable1
ありtable2
ます。両方のテーブルに同じ列があります。
レコードの違いを抽出したい - つまり、 not in でレコードをtable1
抽出し、 not inでtable2
レコードを抽出します。table2
table1
Oracle SysでSQLを使用してそれを行うにはどうすればよいですか?
java - あるセットを別のセットに割り当て、クリアが実行されると、両方のセットがクリアされます
1.最初に 2 つのセットを作成しました。2.1つのセットに要素を追加しました。3.あるセットを別のセットに割り当てます。4.一方のセットで clear が呼び出されると、両方のセットがクリアされます。
誰でも問題を理解するのに役立ちますか?
python - セット内のunion()とupdate()の違い、およびその他?
Pythonセットには次のメソッドがあります。
同様に、これらもあります:
など、すべての標準的な関係代数演算について。
ここでの違いは正確には何ですか?update()バージョンが新しいセットの代わりにsを返すと言っているのがわかりますが、私が書いた場合、それx = s.update(t)
はそれを意味しid(x) == id(s)
ますか?それらは現在同じオブジェクトを参照していますか?
両方のメソッドセットが実装されているのはなぜですか?重要な機能は追加されていないようです。
sql - Oracle の集合演算子で to_char(null)、to_number(null) などを使用する SQL
私は初めて SQL の世界に足を踏み入れた学生ですが、to_somedatatype(null) を使用して UNION や INTERSECT などで欠落している列を置き換える方法に関する明確でわかりやすいドキュメントが見つかりません。HR を使用しています。最初のいくつかのプロジェクトでは Oracle Database に組み込まれているスキーマがあり、次のクエリが機能します (扶養家族を持つ従業員のみの employee_id 番号のリストを取得します)。
しかし、従業員の名前と扶養家族の生年月日を含めたいと思ったらすぐに行き詰まります。このバリエーションは、エラーのない検索を実行しますが、結果が得られません (「行が選択されていません」と出力されます)。
to_date を to_number に置き換えるか、単純な null と to_char を to_varchar2 または null に置き換えるいくつかのバリエーションでは、行が生成されません。
私が生成したいのは、保護者の従業員番号、名、姓、および扶養家族の生年月日を表示する扶養家族ごとに 1 つの行です。私の問題は、これらの null プレースホルダーの使用と、一般的な集合演算子の理解が限られていることにあると確信しています。(私の理解では、to_date(null) のような null プレースホルダーを使用した場合、比較するものが何もないため、比較に含まれません。)
これらのプレースホルダーを適切に使用する方法を誰かに説明してもらえますか?
mysql - リレート/ルックアップ テーブルで無関係な ID を選択する
これについてはさまざまな例を見てきましたが、いずれかの値が指定されていないリレートを使用table_A
して、行に関連していないすべての行を返す方法の決定的な例を見つけることができませんまたは。これに最も近いものは次のとおりです。table_B
table_A_B
table_A.id
table_B.id
A
の1 つ以上の行に関連してB
いないが、B のどの値が問題であるかを知らずにリストを取得します。A
指定されたに関連しないのリストを取得しますB
。A
関係のないコンマ区切りのフィールドのリストを取得しますB
(見たことはわかりませんが、1つの例がそのように展開できるように見えました)。互いに関連していないが、どちらが関連していないかを示していない
A
とのリスト。B
A_B
次のようにして、すべての潜在的なタプルのリストを取得することもできます。
EXCEPT
そして、リレート テーブルに対して回避策の 1 つを仮想的に使用することもできますが(私はそう思います)、すべての試みは失敗しました。
したがって、テーブルの値が与えられた場合:
返されるクエリはありますか: A | B2 | 9 3 | 8 3 | 9
またはさらに良い:
それとも、これはトラブルを求めていますか?