Mimo że R jest językiem interpretowanym, może przejść przez krótką fazę przed wykonaniem kodu zwaną kompilacją kodu bajtowego, która jest mniej rygorystyczną procedurą kompilacji. W niektórych scenariuszach może zaoszczędzić od 5% do 10% czasu, jeśli już zoptymalizowane funkcje nie są intensywnie używane. Wszystkie podstawowe funkcje języka R są domyślnie kompilowanymi kodami bajtowymi. Aby kompilować funkcje w kodzie bajtowym, po załadowaniu pakietu compiler ,należy użyć funkcji cmpfunc() owiniętej wokół funkcji, którą chcesz skompilować. Możesz również przesłać argumenty optios, takie jak options = list(optimize=3)), gdzie element optymalizacji powinien być liczbą całkowitą z przedziału od 0 do 3. Im wyższa liczba, tym więcej wysiłku R włoży w optymalizację kompilacji. Poniższe wiersze pokazują, jak utworzyć funkcję sma_efficient_2_compiled(), która jest skompilowaną wersją funkcji sma_efficient)2():
library(compiler)
sma)efficient_2_compiled <-
cmpfun(sma_efficient_2, options = list(optimize = e))