से उप मैट्रिक्स का अनुक्रम का चयन करें ए एक 100 आयामी सरणी है जिसमें मंद 100 * 100 * 100 * 100 है। मैं ए के पिछले दो आयामों से 10000 उप मैट्रिक्स का चयन करना चाहता हूं। बी और सी लंबाई 10000 के वैक्टर हैं। वे चयन मानदंड हैं। बी ए की पंक्ति संख्या निर्दिष्ट करता है, और सी कॉलम संख्या निर्दिष्ट करता है।आर, उच्च आयामी सरणी
A <- array(rnorm(100^4), dim=c(100,100,100,100))
B <- sample(nrow(A) , 10000 , repl = TRUE)
C <- sample(ncol(A) , 10000 , repl = TRUE)
D <- array(0, dim=c(10000,100,100))
पाश के लिए के साथ
:
system.time(
for (i in 1:10000){
D[i,,] <- A[B[i],C[i],,]
})
user system elapsed
10.20 0.14 10.34
mapply साथ:
sub_array <- function(b,c) return(A[b,c,,])
system.time(D <- mapply(FUN = sub_array, B, C, SIMPLIFY='array'))
user system elapsed
9.77 3.75 29.17
जो भी धीमी है। क्या ऐसा करने का कोई तेज तरीका है? धन्यवाद।