在 R 中使用 rep() 在值之间交替

Alternating between values with rep() in R

我正在寻找一种根据给定向量以交替方式重复两个值的优雅方法。最好举例说明。以下面的代码为例:

vals_to_rep <- c(1, 2)
tms_to_rep <- c(5, 4, 15)
res <- c(rep(1, 5), rep(2, 4), rep(1, 15))
res

在此示例中,我希望根据向量 tms_to_rep 重复值 1 和 2,其中我将从 1 开始(假设它在变量中位于第一个)vals_to_rep,然后交替为 2,回到 1,...

我希望将此过程继续 tms_to_rep-- 在本例中为三次。结果将如下所示:

1 1 1 1 1 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

如果有帮助,您可以假设 vals_to_rep 是二进制的,但不假设 tms_to_rep 的长度。

谢谢!

您可以将 vals_to_rep 扩展到 tms_to_rep 的长度。然后 rep() 工作正常:

vals_to_rep_expanded = rep(vals_to_rep, length.out = length(tms_to_rep))
rep(vals_to_rep_expanded, times = tms_to_rep)