2 Sintaxis

R Calculadora

4 + 9
4 - 
  3 *
  1
#4%1

(4 + 5 ) * 7 - (36/18)^3

Ver tablas resumen de operadores aritméticos y lógicos (al final del capítulo)

Reto matemático que se volvió viral en las redes sociales*

Existen dos soluciones, según método que se aplique: el PEMDAS = 1 (parenthesis < exponents < multiplicación < division < addition < subtraction) y el BODMAS = 16 (Brackets < Orders (Powers and Square Roots) < Division < Multiplication < Addition < Subtraction).

Cómo opera R?

Se puede decir que hay diferencia de estilos al programar. Se deberia tener presente que otros pueden leer tu código (optar por buenas prácticas)

(3+(5*(2^2))) # difícil de leer
3 + 5 * 2 ^ 2   # si se recuerdan las reglas, todo bien
3 + 5 * (2 ^ 2)   # si se olvidan algunas reglas, esto podría ayudar

Comparaciones lógicas

4>3
4 == 4
4 != 4
4 != 3
1 >= -9


Variables y asignaciones

Podemos almacenar valores en variables usando el operador de asignación <-, veamos un ejemplo:

x <- 1/40

Esta asignación no muestra el valor, sino que lo almacena para más adelante en algo llamado “variable”. Que contiene x?

x

shortcut de “<-” : Alt -

Chequear la pestaña Environment en uno de los paneles de RStudio. Nuestra variable x se puede usar en lugar de un número en cualquier cálculo que espere un número:

x <- x + 1 # observen cómo RStudio actualiza/sobrescribe x en la pestaña superior derecha
y <- x * 2

El lado derecho de la asignación puede ser cualquier expresión de R válida. La expresión del lado derecho se evalúa por completo antes de que se realice la asignación.

También es posible utilizar el operador = para la asignación

x = 1/40

Esta forma es menos común entre los usuarios R (se recomienda usar <-).


Funciones

Como dijimos, los paquetes son básicamente un conjunto de funciones generadas por los autores de los mismos pero el usuario puede crear sus propias funciones.

Componentes de las funciones:

nombre_funcion(argumentos)

  • Nombre: Generalmente, el nombre es intuitivo, por ejemplo, mean es la función que calcula la media, round es la funión que redondea un número.(Como habrán notado R está en inglés)

  • Argumentos: Un argumento es un marcador de posición. Cuando se invoca una función, se debe indicar valores a los argumentos. Los argumentos son opcionales; es decir, una función puede no contener argumentos. También los argumentos pueden tener valores por defecto.

Algunos cálculos basados en funciones matemáticas. Son las mas simples, y no esta funcion no contienen argumentos. [para chequear la info de la función, solo basta con seleccionar todos sus caracteres + F1]

sqrt(3) 
# 3^0.5 
# 3^(1/2)
log(10) # logaritmo natural
exp(2.302585)
# log(10, base=10)

Funciones básicas pero con argumentos

  • Redondeo
round(4.3478)  
round(4.3478, digits=3)  

Tips

1 - No se tienen en cuenta los espacios en blanco entre palabras: podemos o no dejar espacios para que el código se pueda ordenar de forma adecuada y poder entenderse.

plot( pressure )
plot(pressur e)

2 - Se distinguen las mayúsculas y minúsculas (“case sensitive”): para variables en el código, podemos crear diferentes variables con nombres iguales pero alternando mayúsculas y minúsculas.

Plot(pressure)

3 - Se pueden incluir comentarios: como vimos anteriormente los comentarios se utilizan para añadir información en el código. De paso observamos que

plot(pressur e) # da error

# grafico press vs temp
plot(pressure)

4 - El punto y coma (;) actúa como separador de comandos aún en la misma línea del script!

pressure; plot(pressure)

5 - Los nombres de las variables pueden contener letras, números, guiones bajos y puntos, pero NO PUEDEN:

  • comenzar con un número
  • contener espacios en absoluto

Cada uno adopta su propia forma para nombres largos de variables, por ej:

  • puntos.entre.palabras
  • guiones_bajos_entre_palabras
  • MayúsculasMinúsculasParaSepararPalabras

No importa como lo adopten, pero es aconsejable ser consistente.

S.O.S.

  • En el mismo R: ?sd; ??sd; F1 sobre la función

Googlear: r generate a sequence of uppercase letters

¿Cómo hacer una buena pregunta en las comunidades?

  • Ser conciso pero gentil…

  • Ser reproducible: su código debe correr en cualquier máquina. La comunidad no irá a ayudarle si no pueden reproducir su error (detallar paquetes y versión de R en caso necesario)

Tablas resumen

Table 2.1: Operadores aritméticos
Operador Detalle
x + y Suma de x e y
x - y Resta de x menos y
x * y Multiplicación
x / y División de x por y
x %/% y Parte entera de la división de x por y
x %% y Resto de la división de x por y
x ^ y x elevado a y-ésima potencia (equivalente a **)



Table 2.2: Operadores lógicos
Operador Prueba.lógica
x < y x menor que y?
x <= y x menor o igual que y?
x > y x mayor que y?
x >= y x mayor o igual que y?
x == y x igual que y?
x != y x diferente que y?



Table 2.3: Funciones matemáticas
Operador Detalle
sqrt(x) raiz de x
exp(y) exponencial de y
log(x) logaritmo natural de x = ln
log10(x) logaritmo base 10 de x
sum(x) suma todos los elementos de x
prod(x) producto de todos los elementos de x
round(x, n) redondea x a n-digitos



Table 2.4: Algunos atajos comúnmente usados
Teclas Detalle
Alt+Shift+K panel de todos los atajos
Ctrl+Z / Ctrl+Shift+Z undo/redo
Alt+ - <-
Ctrl+r corre la línea/bloque completa de código
Ctrl+l limpia la consola
Ctrl+Shift+c silencia la línea de código
Ctrl+Shift+d duplica la línea de código
Ctrl+i indexa el bloque de código
  • Ver todos los atajos en R Studio: situandose en la consola tipear simultanemante Ctrl | Shift | k