1

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

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 开始的向量重复值 1 和 2(假设它在变量中是第一个)vals_to_rep,然后交替到 2,回到 1,...

我希望将这个过程继续tms_to_rep-- 在这种情况下,持续3 次。结果将如下所示:

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.

谢谢!

4

1 回答 1

2

您可以扩展vals_to_reptms_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)
于 2018-02-28T00:51:23.563 回答