¿R tiene un concepto de +=
(más igual) o ++
(más más) como c ++ / c # / otros?
r
operators
variable-assignment
increment
SFun28
fuente
fuente
x += 1
ox++
...x = x + 1
funciona.Respuestas:
No, no lo hace, ver: R Definición del lenguaje: Operadores
fuente
Siguiendo @ GregaKešpret puedes hacer un operador infijo:
fuente
x = %+=% y/2
vuelvex = (x + y)/2
. Agregar paréntesis, es decir,x = %+=% (y/2)
resuelve el problema.R no tiene un concepto de
increment operator
(como por ejemplo ++ en C). Sin embargo, no es difícil implementar uno usted mismo, por ejemplo:En ese caso llamarías
Sin embargo, presenta una sobrecarga de llamadas de función, por lo que es más lento que escribir
x <- x + 1
usted mismo. Si no me equivoco,increment operator
se introdujo para facilitar el trabajo del compilador, ya que podría convertir el código a esas instrucciones de lenguaje de máquina directamente.fuente
INC
la instrucción se introdujo en procesadores principalmente para implementar contadores (véase el Manual del desarrollador de software de Intel). Actualizaré la respuesta.R no tiene estas operaciones porque (la mayoría) de los objetos en R son inmutables. No cambian Por lo general, cuando parece que está modificando un objeto, en realidad está modificando una copia.
fuente
Incremento y decremento en 10.
fuente
Hmisc
de la versión 4.1.0.Lanzamos un paquete, roperators, para ayudar con este tipo de cosas. Puede leer más sobre esto aquí: https://happylittlescripts.blogspot.com/2018/09/make-your-r-code-nicer-with-roperators.html
fuente
Podemos anular
+
. Si+
se usa unario y su argumento es en sí mismo una+
llamada unaria , entonces incremente la variable relevante en el entorno de llamada.otras operaciones no cambian:
Sin embargo, no lo hagas, ya que ralentizarás todo. O hágalo en otro entorno y asegúrese de no tener grandes bucles en estas instrucciones.
También puedes hacer esto:
fuente
Hay otra forma de hacer esto, que me parece muy fácil, tal vez podría ser de alguna ayuda
Utilizo
<<-
para esta situación Los operadores<<-
asignan el valor al entorno principaly puedes llamarlo así
fuente