Có cách nào để thực hiện foreach() trả về một danh sách có tên/data.frame hay không. Ví dụ.foreach: Giữ tên
foo <- list(a = 1, b = 2)
bar <- foreach (x = foo) %do% { x * 2 }
trả về list(2, 4)
. Tôi muốn nó trả lại list(a = 2, b = 4)
.
Ngoài ra, có cách nào để truy cập tên từ bên trong vòng lặp không?
(Tôi không quan tâm đến một giải pháp mà gán tên sau khi vòng lặp foreach.)
Trân
Không chắc chắn nếu 'foreach' có chức năng cho việc này. Tuy nhiên bạn có thể thay đổi vòng lặp của bạn thành 'foreach (i = seq_along (foo)) {x <- foo [[i]]; ...} 'sẽ cho phép bạn truy cập tên của từng phần tử bằng' tên (foo) [i] ' – konvas
Bạn cũng có thể sử dụng' x = Bản đồ (cấu trúc, .Data = lapply (foo, list), names = tên (foo)) 'để lấy các tên bên trong vòng lặp, như thể vòng lặp đang sử dụng' ['thay vì' [['để truy cập các phần tử của' foo'. –