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

Mô phỏng dữ liệu với 3+ đầu vào bằng pmap()

Điều gì xảy ra nếu bạn cần lặp qua ba list? Có map3() không? Để lặp qua nhiều hơn hai list — có thể là ba, bốn, thậm chí 20 — bạn sẽ cần dùng pmap(). Tuy nhiên, pmap() yêu cầu bạn cung cấp các đối số list theo cách hơi khác một chút.

Để dùng pmap(), trước tiên bạn cần tạo một master list chứa tất cả các list mà bạn muốn lặp qua. Master list sẽ là đầu vào cho pmap(). Thay vì dùng .x hoặc .y, hãy dùng chính tên các list làm tên đối số.

Bạn sẽ mô phỏng dữ liệu thêm một lần nữa, lần này dùng năm list làm đầu vào thay vì hai. Dùng pmap() giúp bạn kiểm soát hoàn toàn bộ dữ liệu mô phỏng, và cho phép bạn dùng hai giá trị trung bình khác nhau và hai độ lệch chuẩn khác nhau cùng với các địa điểm khác nhau.

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

Nền tảng Lập trình Hàm với purrr

Xem khóa học

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

  • Tạo một list có đặt tên, chứa các list sites, means, means2, sigma, và sigma2.
  • Dùng pmap() trên list các list để tạo một list các data frame với ba cột; cột thứ nhất là sites.
    • Cột thứ hai là a, được tạo bằng rnorm() với mean = meanssd = sigma.
    • Cột thứ ba là b, được tạo bằng rnorm() với mean = means2sd = sigma2.

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.

# Create a master list, a list of lists
pmapinputs <- list(sites = ___,  means = ___, sigma = ___, 
                   means2 = ___, sigma2 = ___)

# Map over the master list
list_of_files_pmap <- pmap(___, 
  function(___, ___, ___, ___, ___) 
    data.frame(sites = ___,
        a = rnorm(mean = ___, n = 200, sd = ___),
        b = rnorm(mean = ___, n = 200, sd = ___)))
                           
list_of_files_pmap
Chỉnh sửa và Chạy Mã