【发布时间】:2016-03-23 15:30:03
【问题描述】:
标题说明了一切:我将如何编码这样一个重复序列,其中基本重复单元是:一个向量 c(1,1,1,2) - 重复 4 次,但每个向量中的值增加 2时间?
我尝试了各种rep、times、each、seq,但都无法得到想要的结果..
【问题讨论】:
标签: r
标题说明了一切:我将如何编码这样一个重复序列,其中基本重复单元是:一个向量 c(1,1,1,2) - 重复 4 次,但每个向量中的值增加 2时间?
我尝试了各种rep、times、each、seq,但都无法得到想要的结果..
【问题讨论】:
标签: r
c(1,1,1,2) + rep(seq(0, 6, 2), each = 4)
# [1] 1 1 1 2 3 3 3 4 5 5 5 6 7 7 7 8
【讨论】:
rep 函数允许在times 参数中使用与x 相同长度的向量。我们可以使用超级机密rep_len 扩展所需的模式。
rep(1:8, rep_len(c(3, 1), 8))
#[1] 1 1 1 2 3 3 3 4 5 5 5 6 7 7 7 8
【讨论】:
rep_len() 没有什么秘密。
我不确定我是否正确,但是这么简单的事情有什么问题:
rep<-c(1,1,1,2)
step<-2
vec<-c(rep,step+rep,2*step+rep,3*step+rep)
【讨论】:
我接受了卢克,因为它对我来说是最容易理解的(并且最接近我已经尝试过的,但失败了!)
我使用了这个最终形式:
> c(1,1,1,2)+rep(c(0,2,4,6),each=4)
[1] 1 1 1 2 3 3 3 4 5 5 5 6 7 7 7 8
【讨论】:
你可以这样做:
pattern <- rep(c(3, 1), len = 50)
unlist(lapply(1:8, function(x) rep(x, pattern[x])))
[1] 1 1 1 2 3 3 3 4 5 5 5 6 7 7 7 8
这让您只需调整rep(len = X) 下的模式长度,并删除任何其他答案显示的加法用法。
【讨论】:
怎么样:
input <- c(1,1,1,2)
n <- 4
increment <- 2
sort(rep.int(seq.int(from = 0, by = increment, length.out = n), length(input))) + input
[1] 1 1 1 2 3 3 3 4 5 5 5 6 7 7 7 8
【讨论】: