私は、SQL Serverがデータ処理からクリーニング、変更まで、私たちが行うすべてのバックボーンであるオフィスで働いています。私の同僚は、着信データを標準化してレポート、視覚化、および分析プロジェクトで使用できるように、複雑な関数とストアドプロシージャの作成を専門にしています。ここから始める前は、最も基本的なクエリを書くことは別として、SQLの経験はほとんどありませんでした。私の分析準備作業の大部分はすべてRで行われました。上司は、Rを使用してより効率的かつはるかに少ないコード行では実行できない割り当てが非常に少ないように思えても、SQLスキルを向上させると主張していますdplyr、data.table、tidyrなどのパッケージ(いくつか例を挙げると)。私の質問は、これは理にかなっていますか?
数週間前、特定の条件を満たすテーブル内の各行の列名のリストを取得し、それらを文字列のベクトルに連結するタスクに直面しました。厳しい締め切りがあり、その時、私はいくつかの閉塞を経験していたので、問題を完全に解決することができませんでした。上司に尋ねたところ、上司は同僚に問題を解決するためのスクリプトTSQLを書くように頼みました。彼がそれに取り組んでいる間に、私はRでそれを行う方法を見つけて、かなり単純な関数を作成し、それをデータフレームに適用しました。私の同僚は、約2時間後にスクリプトで戻ってきました。ネストされた2つのforループを含む少なくとも75行でした。私は彼に、実行が終了したときに通知するように頼み、数時間かかると言いました。一方、私のRスクリプトは、約30秒で〜45,000レコードをループできました。
データのクリーニングと変更には、Rのほうがはるかに良い選択だと思いますか?おそらく私のオフィスのSQL開発者は不適当でしょうか?RとSQLの両方(またはPythonとSQLの両方)を扱った人がこれについて何か考えを持っている場合、私は興味があります。