Выборка элементов кадра данных в R - PullRequest
0 голосов
/ 25 февраля 2020

Задан массив позиций для каждой строки во фрейме данных. Получить эти элементы наиболее эффективным способом, не используя функции apply.

Вот пример, потому что я ужасно объясняю. Учитывая эту матрицу (или фрейм данных):

A = matrix(1:9, nrow = 3, ncol = 3)
> A
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

Извлечь следующие элементы из каждого столбца: 1, 3, 3

Это означает, что я хочу получить 1, 8 и 9. первый, третий и третий элементы каждой строки.

Я ожидаю, что A [, c (1,3,3)] справится с задачей. Но, похоже, мне нужно обернуть это в функцию diag.

diag(A[, c(1,3,3)])

Это похоже на убийство мухи с помощью ядерного оружия. Это крайне неэффективно. Я знаю, что должен быть простой способ сделать это (без использования apply или любого из его семейства). Заранее спасибо!

...