1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Viết mã R hiệu quả

Connected

Bài tập

Đo thời gian - cấp phát trước

Trong bài trước, việc tăng kích thước vector mất khoảng 2 giây. Vậy nếu cấp phát trước vector thì mất bao lâu? Hàm pre_allocate() được định nghĩa bên dưới.

n <- 30000
# Fast code
pre_allocate <- function(n) {
    x <- numeric(n) # Pre-allocate
    for(i in 1:n) 
        x[i] <- rnorm(1)
    x
}

Hướng dẫn

100 XP

Hàm pre_allocate() đã có sẵn trong workspace của bạn.

  • Dùng system.time() để xem chạy pre_allocate(n) mất bao lâu. Dùng mẹo <- để lưu kết quả vào đối tượng res_allocate.