【问题标题】:Alternating between values with rep() in R在 R 中使用 rep() 在值之间交替
【发布时间】:2018-02-28 08:51:23
【问题描述】:

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

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 的长度——在这种情况下,是 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 的长度。

谢谢!

【问题讨论】:

    标签: r apply rep


    【解决方案1】:

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

    【讨论】:

    • 我没想到!谢谢朋友!
    猜你喜欢
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多