重复数值向量

Repeating a numerical vector

假设我有以下数值向量

z = 1:3
f <-c(rep(z[1],3),rep(z[2],3),rep(z[3],3))
[1] 1 1 1 2 2 2 3 3 3

现在假设如下:

z =1:i #i is an interger

如何编写一个函数来获得与第一行代码相同的输出格式? 我尝试了一个 for 循环,但没有得到想要的结果。

尝试 repeach = 3

> rep(1:3, each = 3)
[1] 1 1 1 2 2 2 3 3 3

kronecker

> kronecker(1:3, rep(1, 3))
[1] 1 1 1 2 2 2 3 3 3

replicate

> c(t(replicate(3, 1:3)))
[1] 1 1 1 2 2 2 3 3 3

使用 for 循环:

z <- 3
vector <- c()
for (i in 1:z){
    vector <- append(vector, rep(i,z))
}
> vector
[1] 1 1 1 2 2 2 3 3 3