r-如何将矩阵的条目ijth添加到具有列i和行j的数据Fram

  • 本文关键字:和行 Fram 数据 ijth 添加 r matrix
  • 更新时间 :
  • 英文 :


我有一个数据帧。有两列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

我们可以将data.frame转换为矩阵,并将其用作行/列索引,从'M'中提取值,并将它分配给'df1'中的新列

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

或者另一个选项是cbind(默认情况下创建matrix(从数据帧中提取的列

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

数据

df1 <- data.frame(A = 1:2, B = c(3, 2))
M <- cbind(c(1, 2, 2), c(3, 4, 1), c(0, 5, 6))

最新更新