按向量次数重复向量

Joh*_*ohn 1 string loops r vector

让我们考虑字符串向量:

string_vector <- c("big & huge", "big & huge & small", "tiny",
                   "very_small & tremendous")
Run Code Online (Sandbox Code Playgroud)

另一个包含整数的向量:

number <- c(2, 1, 3, 4)
Run Code Online (Sandbox Code Playgroud)

我想通过等于number向量中相应整数的次数来重复 string_vector 的元素。即string_vector[1]重复number[1]次数,string_vector[2]重复number[2]次数等。

我的解决方案

我的解决方案是最直接的:

vec <- c()
for (i in seq_len(length(number))) {
  vec <- append(vec, rep(string_vector[i], number[i]))
}
Run Code Online (Sandbox Code Playgroud)

问题

我的问题是我的解决方案有点不方便。我在想是否有可能以某种方式省略循环。我不太确定如何做到这一点。不知道如何通过不使用循环来解决这个问题?

Chr*_*ann 6

如果我没记错的话,解决方案是这样的:

rep(string_vector,number)
 [1] "big & huge"              "big & huge"              "big & huge & small"      "tiny"                   
 [5] "tiny"                    "tiny"                    "very_small & tremendous" "very_small & tremendous"
 [9] "very_small & tremendous" "very_small & tremendous"
Run Code Online (Sandbox Code Playgroud)