原始 vector x
:
x = 1:20
我正在寻找的是 vector
y
,每隔n个重复x
中的第n个元素,例如,当n=4
时:n = 4
y = c(1,2,3,4,4,5,6,7,8,8,9,10,11,12,12,13,14,15,16,16,17,18,19,20,20)
我实际上是在为矩阵做的,我认为这与
apply
在这里使用margin=2
有关,但无法马上解决,谁能给我个快速解决方案?
最佳答案
我们也可以使用
v1 <- rep(1, length(x))
v1[c(FALSE, FALSE, FALSE, TRUE)] <- 2
rep(x, v1)
#[1] 1 2 3 4 4 5 6 7 8 8 9 10 11 12 12 13 14 15 16 16 17 18 19 20 20
或者,如@MichaelChirico所评论的那样,可以使第二行代码更通用
v1[seq_along(v1) %% n == 0L] = 2
或者使用
ifelse
(来自@JonathanCarroll的评论)rep(x, ifelse(seq_along(x) %% n, 1, 2))
关于r - 在序列中每隔n个重复第n个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43314426/