Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Przeanalizuj i zrozum rozwiązanie z ramką danych d().
  • Uzupełnij rozwiązanie z macierzą, m().
    • Funkcja m() powinna tworzyć matrix z 6 elementami i 2 kolumnami.
  • Użyj funkcji microbenchmark(), aby porównać czasy wykonania d() i m().

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     = ___
)
Edytuj i uruchom kod