随机进行加法或减法的函数

Mat*_*ath 3 random r subtraction addition

我想知道是否有一个函数可以随机添加或减法运算符:

x +- y
Run Code Online (Sandbox Code Playgroud)

Mar*_*pov 7

现在的问题归结为获得-11以随机方式.你可以使用它sample:

x + sample(c(-1,1),size=1)*y
Run Code Online (Sandbox Code Playgroud)

或者runif:

x + sign(runif(n=1,min=-1,max=1))*y
Run Code Online (Sandbox Code Playgroud)

如果是xy向量,你可以生成数字序列-11长度相同的长度x,如@BondedDust建议:

x + sample(c(-1,1),size=length(x),replace=T)*y
Run Code Online (Sandbox Code Playgroud)

  • ...如果你真的想要,你总是可以把它包装在你自己的中缀操作符中:`'%rand%'< - function(x,y){x + sample(c(1,-1),length(y) ),replace = TRUE)*y}` (3认同)