Contenidos
Operadores aritméticos R
x = 1; toma el valor de la derecha (por ejemplo, 1) y lo pone en la memoria referenciada por x. Aquí x y 1 se conocen como L-VALORES y R-VALORES respectivamente Los L-valores pueden estar en cualquier lado del operador de asignación mientras que los R-valores sólo aparecen a la derecha.
Así que x es un valor L porque puede aparecer a la izquierda como acabamos de ver, o a la derecha como esto: y = x; Sin embargo, las constantes como 1 son valores R porque 1 podría aparecer a la derecha, pero 1 = x; no es válido.
La precedencia de los operadores determina la agrupación de los términos en una expresión. Esto afecta a cómo se evalúa una expresión. Algunos operadores tienen mayor precedencia que otros; por ejemplo, el operador de multiplicación tiene mayor precedencia que el operador de suma:
R no igual
La siguiente tabla muestra los operadores relacionales que admite el lenguaje R. Cada elemento del primer vector se compara con el elemento correspondiente del segundo vector. El resultado de la comparación es un valor booleano.
La siguiente tabla muestra los operadores lógicos que admite el lenguaje R. Sólo es aplicable a vectores de tipo lógico, numérico o complejo. Todos los números mayores que 1 se consideran como valor lógico TRUE.
Se denomina operador lógico AND a nivel de elemento. Combina cada elemento del primer vector con el elemento correspondiente del segundo vector y da una salida TRUE si ambos elementos son TRUE.
Hoja de trucos de los operadores de R
Esta es una lista de operadores en los lenguajes de programación C y C++. Todos los operadores listados existen en C++; la columna “Incluido en C”, indica si un operador también está presente en C. Tenga en cuenta que C no soporta la sobrecarga de operadores.
A efectos de estas tablas, a, b y c representan valores válidos (literales, valores de variables o valor de retorno), nombres de objetos o lvalores, según corresponda. R, S y T representan cualquier tipo(s), y K un tipo de clase o tipo enumerado.
Todos los operadores lógicos existen en C y C++ y pueden sobrecargarse en C++, aunque se desaconseja la sobrecarga de los operadores lógicos AND y OR, ya que como operadores sobrecargados se comportan como llamadas a funciones ordinarias, lo que significa que se evalúan ambos operandos, por lo que pierden su bien utilizada y esperada propiedad de evaluación en cortocircuito[1].
La siguiente es una tabla que lista la precedencia y asociatividad de todos los operadores en los lenguajes C y C++. Los operadores están listados de arriba a abajo, en precedencia descendente. La precedencia descendente se refiere a la prioridad de la agrupación de operadores y operandos. Considerando una expresión, un operador que aparece en alguna fila se agrupará antes que cualquier operador que aparezca en una fila más abajo. Los operadores que están en la misma celda (puede haber varias filas de operadores listados en una celda) se agrupan con la misma precedencia, en la dirección dada. La precedencia de un operador no se ve afectada por la sobrecarga.
En r
Hay una preferencia general entre la comunidad de R por usar <- para la asignación (que no sea en las firmas de las funciones) por compatibilidad con versiones (muy) antiguas de S-Plus. Tenga en cuenta que los espacios ayudan a aclarar situaciones como
Si prefiere escribir = en lugar de <- pero quiere utilizar el símbolo de asignación más común para el código publicado (en CRAN, por ejemplo), puede utilizar una de las funciones tidy_* del paquete formatR para sustituir automáticamente = por <-.
La respuesta a la pregunta “¿Por qué x <- y = 5 arroja un error pero no x <- y <- 5?” es “Se debe a la magia contenida en el analizador sintáctico”. La sintaxis de R contiene muchos casos ambiguos que tienen que ser resueltos de una manera u otra. El analizador sintáctico elige resolver los bits de la expresión en diferentes órdenes dependiendo de si se ha utilizado = o <-.
Como muestra tu ejemplo, = y <- tienen una precedencia de operador ligeramente diferente (que determina el orden de evaluación cuando se mezclan en la misma expresión). De hecho, la Sintaxis en R da la siguiente tabla de precedencia de operadores, de mayor a menor:
Posts Relacionados:
Bienvenid@s a Trenmadridalicante.es, soy Carlos de la Cerda Gutiérrez, copywriter.
En mi blog encontraréis diversas noticias de actualidad.