如何在常见情况下重写矢量创建代码?

时间:2016-02-01 02:19:34

标签: r vector

我需要创建向量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))

1 个答案:

答案 0 :(得分:3)

rep功能足够好,但Kronecker产品值得一提。

kronecker(1:3, rep(1, 3))