Tóm tắt Monopoly

Viết mã R hiệu quả

Colin Gillespie

Jumping Rivers & Newcastle University

Data frame và ma trận

# Original
rolls <- data.frame(d1 = sample(1:6, 3, replace = TRUE),
                    d2 = sample(1:6, 3, replace = TRUE))
# Updated
rolls <- matrix(sample(1:6, 6, replace = TRUE), ncol = 2)
  • Tổng thời gian mô phỏng Monopoly: từ 2 giây còn 0,5 giây
  • Tạo data frame chậm hơn ma trận
  • Trong mô phỏng Monopoly, ta đã tạo 10.000 data frame
Viết mã R hiệu quả

apply vs. rowSums

# Original
total <- apply(df, 1, sum)
# Updated
total <- rowSums(df)
  • 0,5 giây còn 0,16 giây - nhanh gấp 3 lần
Viết mã R hiệu quả

& vs. &&

# Original
is_double[1] & is_double[2] & is_double[3]
# Updated
is_double[1] && is_double[2] && is_double[3]
  • Tăng tốc hạn chế
  • 0,16 giây còn 0,15 giây
Viết mã R hiệu quả

Tổng quan

Phương pháp Thời gian (giây) Tăng tốc
Original 2,00 1,0
Matrix 0,50 4,0
Matrix + rowSums 0,20 10,0
Matrix + rowSums + && 0,19 10,5
Viết mã R hiệu quả

Cùng luyện tập nào!

Viết mã R hiệu quả

Preparing Video For Download...