1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Tối ưu hóa mã R với Rcpp

Connected

Bài tập

Trung bình có trọng số (phiên bản C++)

Đến lúc vận dụng kỹ năng của bạn: hãy viết một hàm để tính trung bình có trọng số của một vector.

Với một vector số các giá trị dữ liệu x và một vector số các trọng số w, trung bình có trọng số là tổng của các giá trị dữ liệu nhân với trọng số, chia cho tổng các trọng số. Lưu ý rằng x và w phải có cùng số phần tử.

Trong R, có thể tính bằng weighted.mean(), tương đương với sum(x * w) / sum(w).

Hướng dẫn

100 XP
  • Hoàn thiện định nghĩa hàm weighted_mean_cpp().
    • Khởi tạo total_xw và total_w bằng 0, và n bằng kích thước của x.
    • Chỉ định các tham số cho vòng lặp for, với một số nguyên i làm biến đếm.
    • Bên trong vòng lặp, cộng trọng số thứ i vào total_w và cộng giá trị dữ liệu thứ i nhân với trọng số thứ i vào total_xw.
    • Trả về tổng tích chia cho tổng trọng số.