我需要创建向量cx=(1, 1, 1, 2, 2, 2, 3, 3, 3)
。我写了一段代码。
k <- 3
tmp <- matrix(0, k, k)
tmp[1,] <-rep(c(1), times = k)
tmp[2,] <-rep(c(2), times = k)
tmp[3,] <-rep(c(3), times = k)
cx <-c(t(tmp))
cx
#[1] 1 1 1 2 2 2 3 3 3
结果适合我,但代码很长。
如何重写任意数字k
的代码?
我的变体是:
k <- 3
tmp <- matrix(0, k, k)
for(i in 1:k) tmp[i,] <-rep(c(i), times = k)
cx <-c(t(tmp))
答案 0 :(得分:3)
rep
功能足够好,但Kronecker产品值得一提。
kronecker(1:3, rep(1, 3))