問題タブ [dbplyr]
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.
r - クエリが n_max 行未満を返す場合にのみ収集する
Oracle
時折、データベースROracle
に接続するときに、R が処理できるよりも多くのデータを取得dbplyr
する操作を実行します。dplyr::collect
これにより R がクラッシュする可能性があり、フェッチする前にデータをさらにフィルタリングまたは集計する必要があるという兆候であることがよくあります。
結果を取得するかどうかを選択する前に、結果のサイズを確認できると便利です (クエリを 2 回実行する必要はありません)。
これを可能collect2
にするバリエーションに名前を付けましょう:collect
予想される行動:
これは可能でしょうか?
私はROracle
/を使用DBI
せずdplyr
にソリューションを受け入れることもできます。
編集:
以下の回答として投稿された部分的な解決策を参照してください。使用しないデータの取得に時間がかかるため、最適ではありません。
r - dplyr inner_join col1 > col2 の実行方法
標準の "col1" = "col2" 結合を使用していない場合、dplyr 結合を機能させるのに苦労しています。私が経験したことの2つの例を次に示します。
まず:
エラー:
by
自然結合の場合は (名前付き) 文字ベクトル、リスト、または NULL でなければなりません (製品コードでは推奨されません)。論理的ではありません
このコードを複製してSQLを使用すると、次のようになります。
SQL クエリの結果:
2番目の部分は最後の部分と似ています:
エラー:
by
自然結合の場合は (名前付き) 文字ベクトル、リスト、または NULL でなければなりません (製品コードでは推奨されません)。論理的ではありません
相当する SQL:
2 番目の SQL クエリの結果:
これらのSQLの例を作成する方法を知っている人はいますが、dplyrコードを使用していますか?