2016-10-09 5 views
-1

Как извлечь значения из матрицы с учетом фрейма данных, содержащего индексы строк и столбцов?R извлекать значения из заданной матрицы данных в x и y

Итак, у меня есть матрица, и у меня есть кадр данных с двумя столбцами, первый содержит индексы строк, которые я хочу извлечь из матрицы, а второй - индексы столбцов.

Как я могу получить все значения из матрицы, соответствующей парам индексов в кадре данных?

+0

Просьба привести воспроизводимый пример. См. «Как создать минимальный, полный и проверенный пример». –

+0

Что вы пробовали? См. '? '['' (Файл справки для индексирования). Вы можете использовать матрицу координат строки/colum как индексы. Вам, вероятно, просто нужно преобразовать ваш dataframe в матрицу. –

ответ

1

Не имея более подробно, я думаю, у вас есть data.frame так:

index_df = data.frame(rows = c(1:5), 
         cols = c(6:10)) 
> index_df 
    rows cols 
1 1 6 
2 2 7 
3 3 8 
4 4 9 
5 5 10 

Я буду использовать эту матрицу в качестве примера:

dummy_matrix = matrix(1:100, ncol = 10, byrow = T) 

> dummy_matrix 
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
[1,] 1 2 3 4 5 6 7 8 9 10 
[2,] 11 12 13 14 15 16 17 18 19 20 
[3,] 21 22 23 24 25 26 27 28 29 30 
[4,] 31 32 33 34 35 36 37 38 39 40 
[5,] 41 42 43 44 45 46 47 48 49 50 
[6,] 51 52 53 54 55 56 57 58 59 60 
[7,] 61 62 63 64 65 66 67 68 69 70 
[8,] 71 72 73 74 75 76 77 78 79 80 
[9,] 81 82 83 84 85 86 87 88 89 90 
[10,] 91 92 93 94 95 96 97 98 99 100 

Extract требуется записей:

dummy_matrix[as.matrix(index_df)] 
[1] 6 17 28 39 50 

спасибо тем, кто заметил мою глупую ошибку

+0

Возвращает целую матрицу значений, но она должна возвращать только 5 запрошенных значений. –

+1

R поддерживает индексирование матрицы, как указано выше - так что 'dummy_matrix [as.matrix (index_df)]' именно то, что вы хотите, я думаю – thelatemail

+0

@ Mathematical.coffee совершенно верно, вы это плохо. – zacdav