[MUSIC] En esta lección aprenderemos lo que son las reglas de precedencia y las operaciones vectoriales. Si retomamos el tema de las operaciones básicas al principio del curso. Podemos recordar que existen todas las que se puedan llevarse a cabo en una calculadora cientÃfica. Que éstas pueden ser binarias, como la suma o resta, multiplicación, división, la operación módulo, la exponenciación o la división entera. O también unarias, como el negativo o lógicas, como el and o "y lógico". Que se utiliza el operador ampersand. Y o el "o lógico", que es la barrita o doble barrita. También hay operadores de orden, que son mayor que, menor que, menor o igual, mayor o igual, o igual. Y de comparación, que es igual o distinto. Ahora, ¿qué pasarÃa si escribiéramos la siguiente operación en la lÃnea de comandos? 2 + 3 * 4 / 5, ¿qué resultado creen que tendrÃa llevar a cabo esta operación? Si vemos la ejecución del comando, podemos observar que es 4.4. Que es lo mismo que multiplicar primero 3 * 4, luego dividir eso entre 5, y luego sumárselo a 2. Ésto es más claro si nosotros utilizamos paréntesis. Cuando introducimos paréntesis, como you lo hicimos, es más fácil ver en qué orden se llevan a cabo las operaciones. En el caso que observamos en el ejemplo, la multiplicación es la primera operación que se lleva a cabo. Luego la división, y finalmente la suma. Cuando metemos operaciones sin paréntesis en R, algunas operaciones se llevan a cabo antes que otras. Éstas siempre se llevan a cabo en el mismo orden, que ésto es justo lo que nos define las reglas de precedencia. Las reglas de precedencia de orden de mayor importancia a menor. Son las llamadas a funciones y expresiones agrupadas. Las operaciones de indexado y búsqueda. Las aritméticas, las de comparación. Las fórmulas, las de asignación y finalmente, las de ayuda. Si utilizamos la ayuda de R para buscar base:Sintax, podemos encontrar la referencia completa de las reglas de precedencia. En este momento están apareciendo en pantalla los operadores completos de orden de mayor a menor precedencia. Como el vector es un elemento básico del lenguaje, es natural entonces pensar que se pueden definir operaciones sobre ellos. Que hagan la lectura del código más conciso, fácil de leer y además más eficiente. Éste tipo de operaciones se conoce como operaciones vectoriales. Estas operaciones se definen para hacernos a la idea de que las operaciones normales pueden llevarse a cabo de manera paralela. En este ejemplo tenemos dos vectores que tienen el mismo tamaño, o el mismo número de elementos. Si sumamos uno con el otro, la suma se va definiendo, es decir, la suma vectorial; se va definiendo operador elemento a elemento. Es decir, el vector 07, 08, 09, 10; se suma el 09,10, 11, 12; uno a uno. Es decir, que cuando nos regresa el resultado, nos da 16, 18, 20 y 22. Podemos llevar a cabo operaciones vectoriales por ejemplo de comparación de un vector con un valor único. Entonces este valor único se va comparando a cada uno de los elementos. En la pantalla podemos observar que si tomamos el vector "x" y lo comparamos si es mayor que a 8, entonces nos regresa un vector de valores lógicos. Lo mismo pasa si utilizamos los demás operadores. Como lo puede ser la comparación de igualdad, la multiplicación o la división. Éstas se hacen elemento a elemento. Si quisiéramos llevar a cabo la operación de suma del vector "x" con el vector "y", sin una operación vectorial. Entonces tendrÃamos que ir haciendo un bucle que veremos un poco más adelante. Que vaya tomando uno por uno de esos elementos de cada uno de los vectores y sumándolos a un tercer vector. Ésto es complicado, porque nos harÃa el código mucho más largo, y además mucho más lento. Porque irÃa haciendo la operación de suma paso por paso. En el caso de las operaciones vectoriales, podemos pensar que todas las sumas de todos los elementos están llevándose a cabo al mismo tiempo. Aunque internamente puede suceder que ésto no esté pasando. También podemos llevar a cabo operaciones vectoriales con matrices. ¿Ésto que significa?, si tenemos dos matrices con el mismo atributo de dimensión. Entonces éstas pueden sumarse, multiplicarse, dividirse y restarse, elemento a elemento utilizando la operación que queramos. También podemos llevar a cabo la operación multiplicación matricial utilizando el operador %*%. Ésto está definido muy diferente a multiplicar elemento a elemento dos matrices con las mismas dimensiones. De hecho, las reglas de multiplicación de matrices son muy claras. Se pueden multiplicar dos matrices que tienen las mismas dimensiones cuadradas. O cuando las columnas de la primera matriz coinciden con los renglones de la segunda matriz. [MUSIC]