Đo thời gian - tăng kích thước một vector
Việc tăng dần kích thước một vector là một trong những “tội lỗi chết người” trong R; bạn nên luôn tránh điều này.
Hàm growing() được định nghĩa bên dưới sẽ tạo n số ngẫu nhiên phân phối chuẩn tắc, nhưng mỗi lần thêm phần tử lại tăng kích thước của vector!
Lưu ý: Số chuẩn tắc là các số được lấy từ phân phối chuẩn có trung bình 0 và độ lệch chuẩn 1.
n <- 30000
# Slow code
growing <- function(n) {
x <- NULL
for(i in 1:n)
x <- c(x, rnorm(1))
x
}
Bài tập này là một phần của khóa học
Viết mã R hiệu quả
Hướng dẫn bài tập
Hàm growing() đã được định nghĩa sẵn trong workspace của bạn.
- Dùng hàm
system.time()để xem mất bao lâu để tạon = 30000số chuẩn tắc ngẫu nhiên bằng hàmgrowing(). Dùng mẹo với<-để lưu kết quả vào một vector tên làres_grow.
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.
# Use <- with system.time() to store the result as res_grow
system.time(___ <- ___)