Tôi đang cố gắng sử dụng foreach để làm máy tính đa lõi trong R.không thể tìm thấy chức năng bên trong foreach vòng lặp
A <-function(....) {
foreach(i=1:10) %dopar% {
B()
}
}
sau đó tôi gọi hàm A
trong giao diện điều khiển. Vấn đề là tôi đang gọi một hàm Posdef
bên trong B
được xác định trong tệp tập lệnh khác mà tôi nguồn. Tôi phải đặt Posdef
vào danh sách đối số xuất của foreach
: .export=c("Posdef")
. Tuy nhiên, tôi nhận được lỗi sau:
Error in { : task 3 failed - "could not find function "Posdef""
Tại sao không thể tìm thấy hàm được xác định này?
Tôi khuyên bạn nên tìm kiếm thông tin về phạm vi động với R. Nó không hề trực quan và bạn sẽ tìm thấy rất nhiều câu hỏi về SO chi tiết mọi người gặp sự cố khi xác định hàm trong hàm. –
Chúng tôi sẽ đánh giá cao một ví dụ tái sản xuất. Ngoài ra, bạn đã thử tuyết rơi cho multicoring chưa? Tôi thấy nó trực quan hơn và dễ điều chỉnh hơn (sửa đổi các hàm áp dụng). –
cùng một vấn đề, không tìm thấy bất kỳ câu trả lời đơn giản nào cho bây giờ. Tôi quản lý để làm cho nó hoạt động bằng cách gọi 4 lõi foreach (j = 1: N, .combine = rbind, .packages = c (VECTOR BAO BÌ CẦN GỌI TẤT CẢ CÁC CHỨC NĂNG CỦA BẠN))% dopar% fun (j). Nó cải thiện tốc độ, nhưng không chia cho 4 (bởi 2 chỉ) Tôi không chắc chắn những gì tôi làm như vậy không sao chép này .. – RockScience