如何创建正负序列

M.U*_*tun 4 r sequence

我目前正在研究 r 以使自己从头开始。试图创建一个序列

(-10,10,100,100,1000,1000)

我的第一个问题是如何创建一个在正负之间交替的序列

其次,我如何创建一个每 x 数量的数字乘以 10 的序列。

GKi*_*GKi 10

您可以使用repcumprod 创建序列10乘以自身繁衍与c(-1,1)正与负之间交替

rep(cumprod(rep(10, 3)), each=2) * c(-1, 1)
#[1]   -10    10  -100   100 -1000  1000
Run Code Online (Sandbox Code Playgroud)


Sot*_*tos 5

另一个想法可以是,

rep(10^seq(3), each = 2) * c(-1, 1)
#[1]   -10    10  -100   100 -1000  1000
Run Code Online (Sandbox Code Playgroud)

只需添加一个基准。事实证明,cumprod很快

microbenchmark(sotos = rep(10 ^ seq(30), each = 2) * c(-1, 1), 
               GKi = rep(cumprod(rep(10, 30)), each = 2) * c(-1, 1))
Run Code Online (Sandbox Code Playgroud)
Unit: microseconds
  expr   min    lq    mean median    uq    max neval
 sotos 6.911 7.212 7.83658  7.512 7.513 30.348   100
   GKi 1.502 1.803 2.03470  1.804 2.104 11.118   100
Run Code Online (Sandbox Code Playgroud)