我希望能够从一个向量构建矩阵,方法如下:如果y的第一个元素是5,我想让矩阵的第一行和第五列为1,行中其它元素都为0。
y=round(runif(30)*9)+1
y_m=matrix(rep(0,length(y)*10),ncol=10)
for (i in 1:length(y)){
y_m[i,y[i]]=1;
}
有没有避免使用for循环的方法?我试图执行y_m[,y]=1
,但显然它不起作用。
xtabs(rep(1, length(y)) ~ seq_along(y) + y)
- alistaire