Bắt đầu ngayBắt đầu miễn phí

Chuyển data frame thành matrix

Một phần mã mà profvis làm nổi bật là dòng chúng ta tạo ra các lần tung xúc xắc và lưu kết quả vào một data frame:

df <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
                d2 = sample(1:6, 3, replace = TRUE))

Ta có thể tối ưu đoạn mã này bằng hai cải tiến:

  • Chuyển từ data frame sang matrix
  • Tạo cả 6 lần tung xúc xắc chỉ trong một bước

Khi đó ta có

m <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)

Bài tập này là một phần của khóa học

Viết mã R hiệu quả

Xem khóa học

Hướng dẫn bài tập

  • Đọc và hiểu lời giải dùng data frame d().
  • Hoàn thiện lời giải dùng matrix, m().
    • m() nên tạo một matrix có 6 phần tử và 2 cột.
  • Dùng hàm microbenchmark() để so sánh thời gian chạy của d()m().

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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     = ___
)
Chỉnh sửa và Chạy Mã