как добавить запись ij-й матрицы во фрейм данных, у которого есть столбец i и строка j - PullRequest
1 голос
/ 06 марта 2020

У меня есть фрейм данных. с двумя столбцами A и B. Я хочу добавить еще один столбец C к нему из матрицы, где столбец A - это i, а столбец B - это j. например, предположим, что у меня есть

          A        B
          1        3
          2        2

, и у меня есть матрица

M:

    1     3     0 
    2     4      5
    2     1     6

новый столбец C - это первый ряд и усталый столбец и второй строка и второй столбец:

          A        B       C
          1        3       0
          2        2       4

1 Ответ

3 голосов
/ 06 марта 2020

Мы можем преобразовать data.frame в матрицу и использовать его в качестве индекса строки / столбца, чтобы извлечь значения из 'M' и присвоить его новому столбцу в 'df1'

df1['C'] <-  M[as.matrix(df1)]
df1
#  A B C
#1 1 3 0
#2 2 2 4

или другой опции cbind (который по умолчанию создает matrix) извлеченные столбцы из data.frame

df1['C'] <- M[cbind(df1$A, df1$B)]

data

df1 <- data.frame(A = 1:2, B = c(3, 2))
M <- cbind(c(1, 2, 2), c(3, 4, 1), c(0, 5, 6))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...