seq() 改变序列的增量

arn*_*upb 1 r increment seq

假设我想创建一个基数 Rseq()为 1 到 15 的序列。有没有一种方法可以使 1 到 10 和 12 到 15 的值应用 1 的增量,但 10.1 到 11.9 的值应用 0.1 的增量?基本上,我感兴趣的是如何将三个序列seq(1,10,1), seq(10.1,11.9,0.1),组合seq(12,15,0.1)成一个seq()

G. *_*eck 5

如果只是为了得到一个紧凑的表达式,那么尝试其中的任何一个。特别是 s5,似乎很接近您正在寻找的东西,即。向量化序列。没有使用任何包。

s1 <- c(1:10, 101:119 / 10, 12:15 )

s2 <- cumsum(rep(c(1, 0.1, 1), c(10, 20, 3)))

s3 <- unlist(Map(seq, c(1, 10.1, 12), c(10, 11.9, 15), c(1, 0.1, 1)))

s4 <- Filter(function(x) (x %% 10 == 0) | (x > 100 & x < 120), 10:150) / 10

s5 <- sequence(nvec = c(10, 20, 3), from = c(10, 101, 130), by = c(10, 1, 10)) / 10

# check
all.equal(s1, s2, s3, s4, s5)
## [1] TRUE
Run Code Online (Sandbox Code Playgroud)