Chapter 2 Bases prácticas en R

2.1 Expresiones y asignaciones

Las expresiones y asignaciones son los dos tipos de resultados que arroja R.

Las expresiones sólo se muestran en la salida estándar y NO se guardan en alguna variable, es decir, cada que se corra la línea se obtendran valores distintos.

Ejemplo:

rnorm(10)
##  [1]  1.12180066  2.93344090 -0.06731002 -0.08897222  1.29393471  0.41434013
##  [7] -1.54945122  0.21963495  0.60563706 -0.41688635
rnorm(10)
##  [1] -1.4331222  1.3046769  0.4111962  0.2014088 -0.6223192  0.8531335
##  [7] -0.6779209 -0.1930655  2.3550262  0.8527725

Las asignaciones, como su nombre lo indica, se guardan los valores al ser asignados a una variable. Esto se puede lograr mediante el uso de <-

Ejemplo:

x <- rnorm(10)
x
##  [1]  0.5310095 -1.5823332  0.1999942  1.6472419 -1.9382590 -0.6093491
##  [7]  0.6806383 -0.1230184  0.1213846  1.6827940

NOTA El símbolo <- es equivalente en función a = pero puede llevar a confusiones importantes con el operador ==.

Operador de asignación. Así que evita el uso del igual
Operador de asignación. Así que evita el uso del igual

Otro punto a considerar respecto a las asignaciones es que R es capaz de distinguir entre mayúsculas y minúsculas, por lo que la misma letra puede contener valores distintos.

Ejemplo:

a <- 3
A <- 6
a
## [1] 3
A
## [1] 6

Una opción es definirlas en más de una línea, ejemplo:

a <-
  pi + 12

NOTA Ten mucha precaución con el nombre que asignas a un valor, ya que podrías sobreescribirlo y se le quedará asignado el último valor.

Ejemplo:

b <- 3
b
## [1] 3
b <- 8 
b
## [1] 8

La separación de comandos puede darse de dos formas:

Empleando ;, ejemplo:

a <- 3; b <-5

o usando un salto de línea, esta es una mejor opción, ejemplo:

a <- 3
b <-5

2.2 Movimiento entre directorios

Otra de las ventajas que ofrece R es que permite ubicar algún archivo o saber la dirección del directorio en la que nos encontramos actualmente, todo ello sin necesidad de salir de la interfaz.

Para saber en qué directorio estamos, se teclea:

getwd()
## [1] "/Users/robertoalvarez/Documents/GitHub/Bravo_Garcia_Maria_Fernanda_Bioinfo_2024"

Para cambiar de directorio utilizamos setwd("direccion_a_la_que_quieres_ir")

setwd("~")

2.3 Bash en R

También se pueden usar los comandos de la terminal de bash dentro de R, utilizando la función system()

Para listar archivos de una carpeta usamos ls

system("ls -la")

Para saber en qué directorio estamos usamos la función análoga a getwd(), que es pwd

system("pwd")

Importante: Como regla general todos los nombres van entre comillas: nombre de carpetas, archivos, de columnas, de renglones,etc.

2.4 Operaciones aritméticas

R también puede ser usado como calculadora. Se puede sumar, restar, multiplicar,dividir, “exponenciar” y calcular la raíz cuadrada.

SUMA con el operador +

a + b
## [1] 8

RESTA con el operador -

a - b
## [1] -2

MULTIPLICACIÓN con el operador *

a * b
## [1] 15

DIVISIÓN con el operador /

a / b
## [1] 0.6

EXPONENTE con los operadoradores ** o ^

a ** b
## [1] 243
a ^ b
## [1] 243

RAÍZ CUADRADA con la función sqrt()

sqrt(a)
## [1] 1.732051

LOGARITMO con la función log()

log(a)
## [1] 1.098612

2.4.1 Prioridad en las operaciones

Las operaciones se efectuan en el siguiente orden:

  1. izquierda a derecha
  2. sqrt() y ** ^
  3. * y /
  4. + y -
  5. <-

IMPORTANTE Este orden se altera si se presenta un paréntesis. En ese caso la operación dentro del paréntesis es la que se realiza primero.

Ejemplos:

4 + 2 * 3 = 4 + 6 = 10

4 - 15/3 + 3^2 + sqrt(9) = 4 - 15/3 + 9 + 3 = 4 - 5 + 12 = 13

4 - (3+7)^2 + (2+3)/5 = 4 - (10)^2 + 5/5 = 4 - 100 + 1 = -95

Ejercicios

Resuelve en un pedazo de papel primero para saber cuál sería el resultado de las siguientes operaciones aritméticas. Después comprueba tu resultado tecleandolas en R.

  1. 1 + 2*3 + 3 + 15/3
  2. 4 - 15/3 + 3^2 + 3*sqrt(81)
  3. 40 - (4+3)^2 + (10-5)/3
  4. 32^5 - (3-5)*2 + 32/sqrt(64)
  5. 1/(3^-3) + (8-10^2) - (25/sqrt(25))^2

2.5 Tipos de valores en R

2.5.1 Valores booleanos

También conocidos como Datos lógicos. Este tipo de datos sólo contienen información TRUE o FALSE, lo cual sirve para evaluar si los elementos de un vector cumplen con los criterios deseados. Para ello se utilizan los operadores de comparación:

  • igual ==
  • no es igual a !=
  • menor que <
  • mayor que >
  • menor o igual que <=
  • mayor o igual que >=

Ejemplo:

1 < 5
## [1] TRUE
10 == 0    
## [1] FALSE
10 != 0   
## [1] TRUE
10 <= 0   
## [1] FALSE

NOTA Dentro de R los valores lógicos TRUE y FALSE tienen un valor numérico. TRUEequivale a 1 y FALSE es equivalente a 0. Esto permite cuantificar el número de elementos que cumplen con los criterios, ¿cómo? mediante la suma de los TRUEs.

Ejercicios Demuestra si: 1. El logaritmo base 10 de 20 es menor que la raíz cuadrada de 4. Desarrollalo en una sola línea. 2. 1/3^-1 es igual a 3/1^-1 3. (-2)^2 no es igual a (2)^2

2.5.2 Caracter

Son strings de texto y se caracterizan porque cada uno de los elementos va entre comillas. Los elementos pueden ser desde sólo un caracter hasta oraciones. Podría parecer que la variable a la cual lo asignamos contiene números, pero las comillas indican que serán tratados como texto. Podemos subsetearlos por su índice o buscando literalmente el texto.

Ejemplo:

x<- "La candente mañana de febrero en que Beatriz Viterbo murió, después de una imperiosa agonía que no se rebajó un solo instante ni al sentimentalismo ni al miedo"

2.5.3 Enteros y números (numeric)

Existen dos formas diferentes en que las computadoras pueden guardar los números y hacer operaciones matemáticas con ellos: numeric e integer. Por lo común no importa esta diferencia, pero puede ser relevante para algunas funciones de Bioconductor. En R se representan los números como numeric y el tamaño máximo que maneja para un integer es ligeramente más chico que el tamaño del genoma humano.

¿Cómo revisar si un objeto es numeric o entero? Con la función class()

x <- 1
class(x)
## [1] "numeric"
x <- 1:3
class(x)
## [1] "integer"