из матрицы сделать выборку по двумерному массиву индексов без цикла?
m <- matrix(1:9, ncol = 3)
v <- matrix(c(1,2,1,3), ncol = 2)
magic_subset(m, v) # 1 8
как-то так получилось m <- matrix(1:9, ncol = 3) v <- matrix(c(1,2,1,3), ncol = 2) v1 <- v[, 1] * v[, 2] map_dbl(v1, ~pluck(t(m), .x)) или sapply(v1, FUN = function(x) t(m)[x])
вот, про pluck я не в курсе был) спасибо) кстати, сообразил, что можно еще по-другому сделать v1 <- v[,1]+nrow(m)*(v[,2]-1) as.vector(m)[v1]
все гораздо проще оказалось m <- matrix(1:9, ncol = 3) v <- matrix(c(1,2,1,3), ncol = 2) m[v]
Обсуждают сегодня