Tôi có một mô phỏng có tổng hợp lớn và kết hợp các bước ngay ở giữa. Tôi prototyped quá trình này bằng cách sử dụng chức năng ddply() của plyr mà hoạt động tuyệt vời cho một tỷ lệ phần trăm lớn nhu cầu của tôi. Nhưng tôi cần bước tổng hợp này nhanh hơn vì tôi phải chạy mô phỏng 10K. Tôi đã mở rộng mô phỏng song song nhưng nếu bước này nhanh hơn thì tôi có thể giảm đáng kể số lượng nút cần thiết.R: tăng tốc "nhóm theo" hoạt động
Dưới đây là một việc đơn giản hóa hợp lý về những gì tôi đang cố gắng để làm:
library(Hmisc)
# Set up some example data
year <- sample(1970:2008, 1e6, rep=T)
state <- sample(1:50, 1e6, rep=T)
group1 <- sample(1:6, 1e6, rep=T)
group2 <- sample(1:3, 1e6, rep=T)
myFact <- rnorm(100, 15, 1e6)
weights <- rnorm(1e6)
myDF <- data.frame(year, state, group1, group2, myFact, weights)
# this is the step I want to make faster
system.time(aggregateDF <- ddply(myDF, c("year", "state", "group1", "group2"),
function(df) wtd.mean(df$myFact, weights=df$weights)
)
)
Tất cả các lời khuyên hoặc gợi ý được đánh giá cao!
Không liên quan đến hiệu suất, nhưng thanh toán 'weighted.mean' trong cơ sở – hadley
Ồ, tiện dụng. Bạn có thể thấy tôi đã học R bằng cách googling cho những gì tôi cần làm;) –