我正在寻找一种以交替方式根据给定向量重复两个值的优雅方式。通过例子更好地说明。例如,请使用以下代码:
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
的长度。
谢谢!
答案 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)