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中的(大多数)对象是不可变的。 他们不改变。 通常,当你看起来像修改一个对象时,你实际上正在修改一个副本。