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

时间:2018-02-28 00:46:24

标签: r apply rep

我正在寻找一种以交替方式根据给定向量重复两个值的优雅方式。通过例子更好地说明。例如,请使用以下代码:

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的长度。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以将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)