Pracuję w biurze, w którym SQL Server jest podstawą wszystkiego, co robimy, od przetwarzania danych przez czyszczenie po mung. Mój kolega specjalizuje się w pisaniu złożonych funkcji i procedur przechowywanych w celu metodycznego przetwarzania przychodzących danych, aby można je było znormalizować i uruchomić w raportach, wizualizacjach i projektach analitycznych. Przed rozpoczęciem tutaj miałem bardzo małe doświadczenie z SQL, oprócz pisania najbardziej podstawowych zapytań. Ogromna większość moich prac przygotowawczych do analizy została wykonana w R. Mój szef nalega, że poprawiam swoje umiejętności posługiwania się językiem SQL, chociaż wydaje się, że istnieje bardzo niewiele zadań, których nie można wykonać wydajniej i przy znacznie mniejszej liczbie wierszy kodu przy użyciu języka R pakiety takie jak dplyr, data.table i tidyr (żeby wymienić tylko kilka). Moje pytanie brzmi - czy to ma sens?
Kilka tygodni temu stanąłem przed zadaniem uzyskania listy nazw kolumn dla każdego wiersza w tabeli, która spełniała określone kryteria, i połączenia ich w wektor ciągów. Termin był napięty, w tym czasie miałem pewną blokadę i nie mogłem całkiem otoczyć problemu. Poprosiłem mojego szefa, który z kolei poprosił mojego kolegę o napisanie skryptu TSQL w celu rozwiązania problemu. Podczas gdy on nad tym pracował, wymyśliłem sposób na zrobienie tego w R, pisząc dość prostą funkcję i stosując ją do ramki danych. Mój kolega wrócił ze scenariuszem około dwie godziny później. Było to co najmniej 75 linii, w tym dwie zagnieżdżone dla pętli. Poprosiłem go, aby powiadomił o zakończeniu pracy, a on powiedział, że zajmie to kilka godzin. Tymczasem mój skrypt R był w stanie zapętlić ~ 45 000 rekordów w około 30 sekund.
Czy mam prawo założyć, że R jest znacznie lepszym wyborem do czyszczenia i mungowania danych? Może programista SQL w moim biurze jest po prostu nieudolny? Jestem ciekawy, czy ktokolwiek, kto pracował zarówno z R, jak i SQL (lub Python i SQL, jeśli o to chodzi) ma jakieś przemyślenia na ten temat.