我在R中工作。我有一个向量A。它包含的值是介于0到10之间的整数。我想要一个矩阵,其矩阵为10-X 0,后跟X 1,其中X是向量A的对应值。
例子:
A = c(1,3,5,8)
变成
(0,0,0,0,0,0,0,0,0,1
0,0,0,0,0,0,0,1,1,1
0,0,0,0,0,1,1,1,1,1
0,0,1,1,1,1,1,1,1,1)
我知道您可以使用rep函数复制值,但不适用于矩阵。例如,B=c(rep(0, 10-A), rep(1,A))
什么都不做。有快速的方法吗?
我希望这会变得更漂亮,但似乎可行
N <- 10
A <- c(1,3,5,8)
matrix(
rep(
rep(c(0,1), length(A)),
rbind(N-A, A)
),
byrow=T, ncol=N
)
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,] 0 0 0 0 0 0 0 0 0 1
# [2,] 0 0 0 0 0 0 0 1 1 1
# [3,] 0 0 0 0 0 1 1 1 1 1
# [4,] 0 0 1 1 1 1 1 1 1 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句