問題タブ [sqldf]
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.
sql - R変数をSQL文に渡す
R で定義された変数を sqldf パッケージ内の SQL ステートメントに渡す方法はありますか?
以下のコードを実行する必要があり、'v' 変数を '$v' として sql select ステートメントに渡しました。
実行しても、間違った結果が返されます。[結果は 1000 になるはずですが、このコードは 0 を返します]。
したがって、変数値を渡さないと思います。
r - WHERE 句と HAVING 句を使用した sqldf の LEFT OUTER JOIN
R に 2 つのデータ フレームがあり、それらを条件付きでマージしたいと思いid
ますday
。マージとは、right
変数にマージされるleft
変数が可能な限り新しい/新鮮/最新であることですが、少なくとも 3 日経過している必要があります。
right
しかし、私のid
ペアdate
に一致するものがない場合でも、left
それらを保持したいと思います。id
私の調査には 2 つの部分があるので、完全ではないという理由だけで-のday
観察を省略したくありません。
これをワンsqldf
ステップで実行できますか? 私の現在のアプローチには、追加のベース R が必要merge
です。
r - sqldf 結合ステートメントで 2 つの文字ベクトルを使用できますか?
sqldf
3 つの異なる data.tablesの結合を行っています。私の現在の作業コードは次のようになります。
ご覧のとおり、これは非常に大きく、私の意見では、扱いにくいコードの塊です。SpecSuitTemp または AltSuitDates の列名を少し変更すると、上記のコードが壊れます。私が望んでいたのは、列名の文字ベクトルを使用して結合を実行し、列名が変更されても問題にならないようにすることです。次のようなものです。
どこ
ただし、このステートメントは機能しません。わかりませんsql
が、同僚の多くの助けを借りて、上記の大きなステートメントを機能させることができました。
私の質問は、sqldf
列名の文字ベクトルを使用して結合ステートメントを実行できますか? ステートメントを で囲む必要があるのlapply
ではないかと考えていましたが、それが可能かどうかはわかりません。ヘルプ、リソース、または提案をいただければ幸いです。
私のデータの出力:
編集:期待される出力データを追加
r - エラー: SQLDF を使用するそのような列はありません
以下はスクリプトです
エラー メッセージが表示されます: そのような列はありません: Current.Hire.Date. しかし、この変数は 7 番目の変数としてリストされています。
私は何を間違えましたか?
r - R - RDB スタイルでデータ フレームを結合し、複数のエントリを 1 つのフレームから別のフレームの単一のエントリに変換します (文字列)
長い投稿を前もって申し訳ありません。
forループを使用してこれをなんとか克服しましたが、sqldfの方が効率的であると感じていますが、今のところうまくいきません。
最初のデータ フレームには一意の識別子 (名前) があります。これは 1000x5 のようなものですが、この精神では:
私の 2 番目のデータ フレームには一意のキーがありません。これも 5000x5 ですが、通常は次のようになります。
各名前の色には冗長性があり、すべての名前が表示されるわけではないことに注意してください。
私の望ましい出力は次のとおりです。
データ フレーム B の各名前の色を取得します (冗長性を削除します。おそらくアルファベット順にします)。
これらのいくつかの色を文字列に変換します (たとえば、関数 "toString" を使用して)
最初のデータ フレームに文字列を新しいエントリとして追加します。
最初に for ループを使用したとき、このような空の列を持つ新しいデータ フレームを作成しました
.. 2 番目のデータ フレームからクエリを実行して、すべての行を反復処理します。
しかし、おそらくこれは、何か賢いものを使用する必要がないかもしれません.
最終結果は次のようになります。
助言がありますか?
string - 共通の文字列に基づく data.table 行のマージ/折りたたみ
これは私の前の質問Merging vectors of strings in a list in Rのフォローアップです
を使用して別のアプローチを試みましたdata.table
。
私は次のようにdata.table
Gを持っています
sd 列の要素に基づいて sdw 列の要素を集計しようとしています。
[1]、[2]、[7] はSD1共通です。したがって、対応する sdw 要素は一緒にマージする必要があります。また、[1]と[7]はSD1、SD32共通です。
[4] は[3] と共通のSD345と [5] と共通のSD387を持っています。したがって、[4]、[3]、および [5] の sdw 要素は一緒にマージする必要があります。
[7] は、他のベクターと共通のSD__を持たないため、そのままにしておく必要があります。
要するに、 G$sd の重複するSD__用語に基づいて G$sdw 要素を集約したい
私が探している出力は次のとおりで、3行だけです。
data.table
私は次のようにパッケージを試しました
これは、G$sd の行全体でのSD__用語の重複に基づいてのみマージできます。要素間で複数の共通用語が考慮されておらず、同じ要素が他の要素と明確な共通用語を持っていることも考慮されていません。
で目的の出力を達成する方法はありますかR
。私の完全なデータセットには、そのような行が何千もあります。