Tôi biết chủ đề này xuất hiện trên SO một vài lần, nhưng các ví dụ thường phức tạp hơn và tôi muốn có câu trả lời (hoặc tập hợp các giải pháp khả thi) cho tình huống đơn giản này. Tôi vẫn quấn đầu quanh R và lập trình nói chung. Vì vậy, ở đây tôi muốn sử dụng chức năng lapply
hoặc vòng lặp đơn giản tới danh sách data
là danh sách ba danh sách vectơ.Lapply function/loops trong danh sách các danh sách R
data1 <- list(rnorm(100),rnorm(100),rnorm(100))
data2 <- list(rnorm(100),rnorm(100),rnorm(100))
data3 <- list(rnorm(100),rnorm(100),rnorm(100))
data <- list(data1,data2,data3)
Bây giờ, tôi muốn lấy danh sách phương tiện cho mỗi véc tơ. Kết quả sẽ là danh sách gồm ba phần tử (danh sách).
tôi chỉ biết làm thế nào để có được danh sách các kết quả cho một danh sách các vectơ và
for (i in 1:length(data1)){
means <- lapply(data1,mean)
}
hoặc bằng cách:
lapply(data1,mean)
và tôi biết làm thế nào để có được tất cả các phương tiện sử dụng rapply
:
rapply(data,mean)
Vấn đề là rapply không duy trì cấu trúc danh sách. Trợ giúp và có thể một số mẹo/giải thích sẽ được nhiều người đánh giá cao.
wow, điều này thật tuyệt vời (và bằng cách nào đó hoàn toàn không trực quan với tôi, vì tôi đã học được các vòng truyền thống trước). chỉ để nắm bắt được ý tưởng đó, liệu bạn có thể thấy nó trông như thế nào trong truyền thống cho vòng lặp? điều đó sẽ giúp tôi có được ý tưởng về cấu trúc lập chỉ mục trong trường hợp tôi cần áp dụng một số chức năng phức tạp hơn – MIH
Cập nhật bài đăng – akrun
cảm ơn rất nhiều, giúp đỡ rất nhiều! – MIH