Myślałem, że określenie nazw dałem R
mniej pracy do zrobienia, ale jestem chyba źledlaczego wywoływanie funkcji określającej obszar nazw jest wolniejsze?
library(microbenchmark)
> microbenchmark(unique.default(c(1,1:10)),base::unique.default(c(1,1:10)))
Unit: microseconds
expr min lq median uq max neval
unique.default(c(1, 1:10)) 3.528 3.849 4.0095 4.170 12.509 100
base::unique.default(c(1, 1:10)) 11.546 12.188 12.5090 12.829 59.012 100
Ktoś musiał wskazać: to są mikrosekundy! Prawdopodobnie nieistotne, jeśli twój kod będzie robił coś bardziej złożonego. – flodel
@flodel w 99,9% masz rację. Ale mam program, który ma wiele wywołań funkcji, wszystkie zgrupowane w dużej pętli. Mam zamiar wprowadzić nową wersję całkowicie wektoryzowaną, dzięki data.table, ale wciąż jest w trybie deweloperskim, więc w międzyczasie milisekunda zapisana w każdym cyklu pętli jest o kilka minut mniejsza w całym programie ... – Michele
Jeśli masz konflikty nazw i dlatego potrzebujesz '::', możesz zrobić 'my.unique <- base :: unique.default' i użyć' my.unique'. – Roland