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