Mam dwa wektora e
i g
. Chcę wiedzieć dla każdego elementu w e
procent elementów w g
, które są mniejsze. Jednym ze sposobów, aby zaimplementować to w R jest:Przyspieszenie funkcji, które używa w ramach połączenia sapply w 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)
Z dużym e
lub g
, to zajmuje dużo czasu, aby uruchomić. Jak mogę zmienić lub dostosować ten kod, aby działał szybciej?
Uwaga: Powyższa funkcja mf
jest oparta na kodzie z funkcji mess
w pakiecie dysków.
Można zmienić mf do 'mf <- function (p, v) {100 * średnia (v <= p)}, ale nie jestem pewien, ile to pomoże. – Dason
Dzięki Dason, ale wydaje się, że zajmuje więcej czasu – Paulo
"vapply" zamiast "sapply" prawdopodobnie pomoże. –