У меня есть индексы в столбцах фрейма данных, и я хотел бы извлечь элементы массива на основе этих индексов, надеюсь, с помощью простой функции подмножества?
У меня есть 3D-массив (но применим для любого количества измерений) Например:
a<-array(1:27,dim = c(3,3,3))
Я могу извлечь один элемент
a[1,2,3]
[1] 22
Я бы хотелизвлечь несколько элементов с учетом их индексов.Скажем, я хочу, например, элементы (1,2,3) = 22, (2,2,3) = 23 и (3,1,1) = 3, которые заданы в формате таблицы / кадра данных:
coords <- as.data.frame(rbind(c(1,2,3),c(2,2,3), c(3,1,1)))
colnames(coords) <- c("index1","index2","index3")
coords
index1 index2 index3
1 1 2 3
2 2 2 3
3 3 1 1
Для вызова (не работает)
a[coords$index1,coords$index2,coords$index3]
Я бы ожидал (но не повезло), что результат этого вызова будет похож на вектор
c(a[1,2,3],a[2,2,3],a[3,1,1])
[1] 22 23 3
Я, очевидно, мог бы пройтись по этим индексам, но я чувствую, что что-то упускаю ... должно быть что-то более простое / лучшее.
Я пробовал несколько вещей и поисков, но я ничего не нашелэто работает, поэтому извиняюсь, если на этот вопрос уже был дан ответ.