Lavoro in un ufficio in cui SQL Server è la spina dorsale di tutto ciò che facciamo, dall'elaborazione dei dati alla pulizia fino alla pulizia. Il mio collega è specializzato nella scrittura di funzioni complesse e procedure memorizzate per elaborare metodicamente i dati in entrata in modo che possano essere standardizzati e messi in funzione in report, visualizzazioni e progetti di analisi. Prima di iniziare qui, ho avuto pochissima esperienza con SQL, oltre a scrivere le query più basilari. La stragrande maggioranza del mio lavoro di preparazione all'analisi è stata fatta in R. Il mio capo insiste sul fatto che io perfeziono le mie abilità SQL, anche se sembrano esserci pochissimi incarichi che non possono essere eseguiti in modo più efficiente e con molte meno righe di codice usando R pacchetti come dplyr, data.table e tidyr (solo per citarne alcuni). La mia domanda è: ha senso?
Un paio di settimane fa, mi sono trovato di fronte al compito di ottenere un elenco di nomi di colonna per ogni riga in una tabella che soddisfacesse determinati criteri e concatenarli in un vettore di stringhe. C'era una scadenza serrata e all'epoca stavo vivendo qualche blocco e non riuscivo a avvolgere la testa attorno al problema. Ho chiesto al mio capo, che a sua volta ha chiesto al mio collega di scrivere uno script TSQL per risolvere il problema. Mentre ci stava lavorando, ho trovato un modo per farlo in R scrivendo una funzione abbastanza semplice e applicandola sul frame di dati. Il mio collega è tornato con la sua sceneggiatura circa due ore dopo. Erano almeno 75 le linee che comprendevano due anelli nidificati. Gli chiesi di avvisare quando finiva di funzionare e mi disse che ci sarebbero volute diverse ore. Nel frattempo il mio script R è stato in grado di eseguire il ciclo dei ~ 45.000 record in circa 30 secondi.
Ho ragione a supporre che R sia una scelta molto migliore per la pulizia e la pulizia dei dati? Forse lo sviluppatore SQL nel mio ufficio è solo inetto? Sono curioso di sapere se qualcuno che ha lavorato con R e SQL (o Python e SQL per quella materia) abbia qualche idea al riguardo.