1 Sintaxis de R: breve repaso

En este documento se recogen los aspectos mas relevante del uso de R y que permiten iniciarse en el uso de esta potente herramienta.

2 Expresiones

  • R evalúa expresiones.
  • Las expresiones se escriben siguiendo una sintaxis precisa.
  • Existe muchas alternativas para obtener un mismo resultado.
  • Las expresiones contienen:
    • valores
    • funciones
    • objetos
    • operadores
    • espacios en blanco: tanto como desee para mejorar la lectura
    • El carácter # genera un comentario a su derecha
  • En la expresiones cualquier valor puede ser sustituido por una expresión.

Para definir un procedimiento de cálculo o programa recurrimos a un conjunto de expresiones de acuerdo a un algoritmo. Estos procedimiento son secuenciales, se evalúan las expresiones empezando por la primera, en un proceso secuencial.

3 Valores

Podemos utilizar valores numéricos, lógicos o de texto; operadores aritméticos o lógicos y funciones para realizar un sin fin de procedimientos.

3.1 Valores numéricos

Los valores numéricos en R pueden ser enteros, reales o complejos; pueden aparecer de forma individual o en conjuntos (ver vectores, matrices y otros).

Las operaciones que devuelven una indeterminación proporcionan el valor correspondiente: \(-\infty\), se representa por -Inf, o \(\infty\), se representa por Inf; las que no tiene un resultado numérico devuelven NaN: not is a number; y cuando el valor no existe encontramos NA, not available o missing value, para indicarlo.

Los siguientes ejemplos muestran el uso de valores numéricos entreros y reales.

> 2
[1] 2
> 0.021
[1] 0.021
> 1e6       # valor de tipo real
[1] 1e+06
> 1e6 + 1   # resultado entero
[1] 1000001

3.1.1 Conversión

> 1e7
[1] 1e+07
> as.integer( 1e7 )  # Entero muy grande
[1] 10000000
> as.integer( 1e10 ) # No cabe en la definición de entero
Warning: NAs introduced by coercion to integer range
[1] NA

3.1.2 Redondeando

> 1/3
[1] 0.3333333
> options( digits = 3 )
> 1/3
[1] 0.333
> log( 2 )  # logaritmo natural base e
[1] 0.693
> 1e6 + 1   # resultado entero?
[1] 1e+06

3.1.3 Series

> 1:10
 [1]  1  2  3  4  5  6  7  8  9 10
> seq( 0, pi, 0.1 )
 [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
[20] 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 3.1

3.1.4 Valores no numéricos

> sqrt( -9 )
Warning in sqrt(-9): Se han producido NaNs
[1] NaN
> sqrt( as.complex( -9 ) ) # La raíz de un valor negativo
[1] 0+3i
> 1 / 0
[1] Inf
> log( -1 )  # No existe el logaritmo
Warning in log(-1): Se han producido NaNs
[1] NaN
> log( 0 )
[1] -Inf
> curve( log, 0, 100 ) # representación de la función logaritmo

3.2 Textuales (string)

Los valores de texto facilitan manejar la información cualitativa o la producción de mensajes para una lectura humanizada.

> "Casa"
[1] "Casa"
> "Casa" == "casa"          # Sensibilidad a mayúsculas
[1] FALSE
> paste ( "Casa", 1:10, sep = " número " )
 [1] "Casa número 1"  "Casa número 2"  "Casa número 3"  "Casa número 4" 
 [5] "Casa número 5"  "Casa número 6"  "Casa número 7"  "Casa número 8" 
 [9] "Casa número 9"  "Casa número 10"
> # 1 + "1"                 # ¡No es posible!
> 
> # read.table( "http://www.um.es/docencia/emc/datos/biom2003.dat" )

4 Operadores

4.1 Operadores aritméticos

En R encontramos los operadores habituales: suma, restas, productos, cocientes y potencias (+, -, *, /, ^) a los que se añaden otros menos conocidos como :, para generar series, o %% para conseguir el resto del cociente entero, u operadore