Zamień ramkę danych na macierz
Jednym z fragmentów kodu wyróżnionych przez profvis był wiersz, w którym generujemy możliwe wyniki rzutów kostką i zapisujemy je w ramce danych:
df <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
d2 = sample(1:6, 3, replace = TRUE))
Możemy zoptymalizować ten kod, wprowadzając dwa ulepszenia:
- Zamiana ramki danych na macierz
- Wygenerowanie wszystkich 6 rzutów kostką w jednym kroku
W rezultacie otrzymamy:
m <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)
To ćwiczenie jest częścią kursu
Wydajny kod w R
Instrukcje do ćwiczenia
- Przeanalizuj i zrozum rozwiązanie z ramką danych
d(). - Uzupełnij rozwiązanie z macierzą,
m().- Funkcja
m()powinna tworzyćmatrixz 6 elementami i 2 kolumnami.
- Funkcja
- Użyj funkcji
microbenchmark(), aby porównać czasy wykonaniad()im().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Load the microbenchmark package
___
# The previous data frame solution is defined
# d() Simulates 6 dices rolls
d <- function() {
data.frame(
d1 = sample(1:6, 3, replace = TRUE),
d2 = sample(1:6, 3, replace = TRUE)
)
}
# Complete the matrix solution
m <- function() {
___(sample(1:6, ___, replace = TRUE), ___)
}
# Use microbenchmark to time m() and d()
___(
data.frame_solution = d(),
matrix_solution = ___
)