Seb*_*Seb 8 r sequence seq rep
我想从两个数字创建一个序列,这样一个数字的出现减少(从n_11到1),而另一个数字的出现被固定为n_2.
我一直在寻找并尝试使用seq和rep来做它,但我似乎无法弄明白.
下面是一个例子c(0,1)并且n_1=5,n_2=3:
0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,1,1,1,0,1,1,1
Run Code Online (Sandbox Code Playgroud)
而这里c(0,1)和n_1=2,n_2=1:
0,0,1,0,1
Run Code Online (Sandbox Code Playgroud)
A5C*_*2T1 10
也许是这样的?
rep(rep(c(0, 1), n_1), times = rbind(n_1:1, n_2))
## [1] 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1
Run Code Online (Sandbox Code Playgroud)
这是一个功能(没有任何健全性检查):
myfun <- function(vec, n1, n2) rep(rep(vec, n1), times = rbind(n1:1, n2))
myfun(c(0, 1), 2, 1)
## [1] 0 0 1 0 1
Run Code Online (Sandbox Code Playgroud)
inverse.rle另一种选择是使用inverse.rle:
y <- list(lengths = rbind(n_1:1, n_2),
values = rep(c(0, 1), n_1))
inverse.rle(y)
## [1] 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1
Run Code Online (Sandbox Code Playgroud)