我正在寻找一种更简单的方法来完成以下工作:
m <- matrix(0, nrow=3, 3)
v <- c(1, 3, 2)
for (i in 1:nrow(m)) {
m[[i, v[i]]] = 1
}上面的代码创建了以下索引矩阵:
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 0 1
[3,] 0 1 0一定有更好的方法吗?!
发布于 2015-08-04 22:37:09
一种不预先定义矩阵的方法是使用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 0https://stackoverflow.com/questions/31820464
复制相似问题