Tôi có hai vector e
và g
. Tôi muốn biết từng phần tử trong e
phần trăm các phần tử trong g
nhỏ hơn. Một cách để thực hiện điều này trong R là:Tăng tốc chức năng sử dụng mà trong một cuộc gọi dễ dàng trong R
set.seed(21)
e <- rnorm(1e4)
g <- rnorm(1e4)
mf <- function(p,v) {100*length(which(v<=p))/length(v)}
mf.out <- sapply(X=e, FUN=mf, v=g)
Với lớn e
hoặc g
, điều này mất rất nhiều thời gian để chạy. Làm cách nào để thay đổi hoặc điều chỉnh mã này để chạy nhanh hơn?
Lưu ý: Chức năng mf
ở trên dựa trên mã từ chức năng mess
trong gói tháo dỡ.
Bạn có thể thay đổi mf cho 'mf <- function (p, v) {100 * bình (v <= p)} 'nhưng tôi không chắc nó sẽ giúp ích bao nhiêu. – Dason
Cảm ơn Dason, nhưng dường như mất nhiều thời gian hơn – Paulo
'vapply' thay vì 'sapply' có thể sẽ giúp ích. –