R:+=(più uguali) e++(più più) equivalenti da c++/c#/ java, ecc.?




operators variable-assignment (4)

Incremento e decremento di 10.

require(Hmisc)
inc(x) <- 10 

dec(x) <- 10

R ha un concetto di += (più uguali) o ++ (più più) come c ++ / c # / altri?



R non ha un concetto di increment operator di increment operator (come ad esempio ++ in C). Tuttavia, non è difficile implementarne uno tu stesso, ad esempio:

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

In quel caso chiameresti

x <- 10
inc(x)

Tuttavia, introduce l'overhead delle chiamate di funzione, quindi è più lento di digitare x <- x + 1 . Se non sbaglio increment operator stato introdotto l' increment operator per semplificare il lavoro per il compilatore, in quanto potrebbe convertire direttamente il codice in quelle istruzioni di linguaggio della macchina.


Seguendo @ GregaKešpret puoi creare un operatore infisso:

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




increment