R带有向量的索引矩阵/从索引向量创建索引矩阵

R带有向量的索引矩阵/从索引向量创建索引矩阵,r,R,我正在寻找一种更简单的方法来执行以下操作: m <- matrix(0, nrow=3, 3) v <- c(1, 3, 2) for (i in 1:nrow(m)) { m[[i, v[i]]] = 1 } 肯定有更好的方法来做这件事 不预先定义矩阵的一种方法是使用outer: num.col <- 3 outer(v, seq_len(num.col), "==") * 1 # [,1] [,2] [,3] # [1,] 1 0 0

我正在寻找一种更简单的方法来执行以下操作:

m <- matrix(0, nrow=3, 3) 
v <- c(1, 3, 2)

for (i in 1:nrow(m)) {
  m[[i, v[i]]] = 1
}

肯定有更好的方法来做这件事

不预先定义矩阵的一种方法是使用
outer

num.col <- 3
outer(v, seq_len(num.col), "==") * 1
#      [,1] [,2] [,3]
# [1,]    1    0    0
# [2,]    0    0    1
# [3,]    0    1    0
num.col
num.col <- 3
outer(v, seq_len(num.col), "==") * 1
#      [,1] [,2] [,3]
# [1,]    1    0    0
# [2,]    0    0    1
# [3,]    0    1    0