R:+ =(加上等于)和++(加上)相当于从c + + / c#/ java等?

R是否具有+= (加上等于)或++ (加上+)作为c ++ / c#/别人的概念?

在@GregaKešpret之后,您可以创build一个中缀运算符:

 `%+=%` = function(e1,e2) eval.parent(substitute(e1 <- e1 + e2)) x = 1 x %+=% 2 ; x 

R没有increment operator的概念(例如C中的++)。 但是,自己实现一个并不难,例如:

 inc <- function(x) { eval.parent(substitute(x <- x + 1)) } 

在这种情况下,你会打电话

 x <- 10 inc(x) 

但是,它引入了函数调用开销,所以比自己inputx <- x + 1 要慢 。 如果我没有弄错increment operator被引入使编译器更容易工作,因为它可以直接将代码转换为那些机器语言指令。

增加和减less10。

 require(Hmisc) inc(x) <- 10 dec(x) <- 10 

R没有这些操作,因为R中的(大多数)对象是不可变的。 他们不改变。 通常,当你看起来像修改一个对象时,你实际上正在修改一个副本。