UNIDAD 3: FUNCIONES, VECTORES Y LISTAS EN R - …fran/TIB/semana3.pdf · o Compuestos Vectores ......

30
UNIDAD 3: FUNCIONES, VECTORES Y LISTAS EN R Técnicas Inteligentes en Bioinformática Máster en Lógica, Computación e Inteligencia Artificial Dpto. Ciencias de la Computación e Inteligencia Artificial Francisco J. Romero Campero Universidad de Sevilla

Transcript of UNIDAD 3: FUNCIONES, VECTORES Y LISTAS EN R - …fran/TIB/semana3.pdf · o Compuestos Vectores ......

UNIDAD 3: FUNCIONES, VECTORES Y LISTAS EN R

Técnicas Inteligentes en BioinformáticaMáster en Lógica, Computación e Inteligencia Artificial Dpto. Ciencias de la Computación e Inteligencia Artificial

Francisco J. Romero Campero

Universidad de Sevilla

CONTENIDOS

1. Concepto de función

2. Vecotres en R

3. Listas en R

CONCEPTO DE FUNCIÓN

o R contiene una amplia variedad de funciones.

o Entenderemos una función un procedimiento que implementa un algoritmo que recibe unos datos de entrada (argumentos), realiza unas transformaciones y devuelve un dato de salida.

o Los datos de entrada y salida pueden ser opcionales.

CONCEPTO DE FUNCIÓN

o La sintaxis para ejecutar una función en R es la siguiente: función(arg1, arg2,…,argN)Por ejemplo:x <- abs(-2)

print(x)

log(8,2)

o También podemos realizar composición de funciones, por ejemplo:x <- -2

log <- log(8,abs(x))

EL SISTEMA DE AYUDA DE R

o R es un lenguaje que se compone de una amplia variedad de funciones.

o Podemos obtener ayuda sobre un tema mediante la función help(“funcion”)help(“c”)

help(“mean”)o La función help.search(“tema”) nos permite

realizar una búsqueda aproximada.o La función apropos(“tema”) nos devuelve un

listado de palabras relacionadas.o El comando ?? “tema” tiene el mismo efecto que

help.search

TIPOS DE DATOSo Simples:

Numéricos Lógicos Caracteres Cadenas

o Compuestos Vectores Matrices Marcos de datos Listas

TIPOS DE DATOSo Simples:

Numéricos Lógicos Caracteres Cadenas

o Compuestos Vectores Listas Matrices Marcos de datos

VECTORES: constructores

o Un vector es una concatenación de datos Todos los datos deben de ser del mismo tipo Si los datos son de distintos tipos, R realiza una

transformación automática. Cada dato recibe un índice según el orden en el que se

concatenó (comenzando por 1) Podemos acceder a cada dato por su índice.

o Para crear un vector usamos la función c() Ejemplo:datos <- c(2,1,3,-1,10,0,0,1)

VECTORES: constructores

o En R existen expresiones para generar sucesiones de números:

1:10

1 2 3 4 5 6 7 8 9 10

15:11

15 14 13 12 11

1:10-1

0 1 2 3 4 5 6 7 8 9

1:(10-1)

1 2 3 4 5 6 7 8 9

o También podemos usar las funciones seq y rep

VECTORES: constructores

o Función seq

> seq(10) #mismo efecto que 1:10

1 2 3 4 5 6 7 8 9 10

> seq(3,10) #mismo efecto que 3:10

3 4 5 6 7 8 9 10

> seq(1,10, by=3) #saltando de 3 en 3

1 4 7 10

VECTORES: constructores

o Función rep

> rep(1:4,2) #repetimos 1:4 dos veces.

1 2 3 4 1 2 3 4

> rep(1:4,each=2) #repetimos 1:4 dos veces,

#intercalando el resultado.

1 1 2 2 3 3 4 4

VECTORES: accesores y modificadores

o Acceso a datos:# esto es un comentario

datos #vector completo

datos[1] #primer dato

datos[-4] #todo menos el cuarto dato

datos[c(1,3,5)] #posiciones 1, 3 y 5

datos[3:5] #posiciones 3 a 5

v <- datos>1 #vector lógico con true en la #posición i sii datos[i]>1

datos[v] #posiciones con true en el vector v

o De manera análoga, podemos modificar los datos:datos[1] <- 23

VECTORES: accesores y modificadores

o Podemos nombrar los elementos de un vector:> v = c(45,43,56,48,51)

> names(v) <- c(“Lun”,”Mar”,”Mie”,”Jue”,”Vie”)

> v

Lun Mar Mie Jue Vie

45 43 56 48 51

> names(v)

[1] “Lun” “Mar” “Mie” “Jue” “Vie”

VECTORES: funciones relevantes

o Podemos utilizar sobre vectores las operaciones aritmético-lógicas descritas en la sección anterior.

o La operación devolverá otro vector con los resultados tras aplicar la operación elemento a elemento.

v1 <- c(5,1,5)

v2 <- c(2,1,3)

v1 == v2

FALSE TRUE FALSE

v1 + v2

7 2 8

v1 == 5

TRUE FALSE TRUE

VECTORES: funciones relevantes

o Algunas funciones útiles con vectores: length() min(), max() sum() mean(), median() sort() unique() which(), which.max(), which.min() plot()

o Usar la función “help” para más información.

VECTORES: funciones relevantes

o La función length() devuelve el tamaño de un vector.v <- c(5,10,0,0,2)

length(v)

5o Las funciones min() y max() devuelven

respectivamente el elemento mínimo y máximo de un vector.min(v)

0

max(v)

10

VECTORES: funciones relevantes

o La función sum() suma todos los elementos de un vectorsum(v)

17

o Las funciones mean() y median() calculan respectivamente la media y la mediana de los elementos de un vectormean(v)

3.4

median(v)

2

VECTORES: funciones relevantes

o La función sort() ordena los elementos de un vectorsort(v)

0 0 2 5 10

o La función unique()devuelve un vector sin elementos repetidosunique(v)

5 10 0 2

VECTORES: funciones relevantes

o La función which()recibe una expresión que devuelve un vector lógico y devuelve los índices true del vector lógico.v > 3

TRUE TRUE FALSE FALSE FALSE

which(v>3)

1 2o Así podemos conocer los índices de los elementos

de un vector que cumplen una determinada propiedad.

VECTORES: funciones relevantes

o Las funciones which.min() y which.max() devuelven respectivamente los índices de los elementos mínimo y máximo de un vector.which.min(v)

3

which.max(v)

2

VECTORES: funciones relevantes

o Las funciones que se aplican sobre datos numéricos, lógicos, caracteres o cadenas, también se pueden aplicar a vectores de estos datos. El resultado será un nuevo vector tras aplicar la función elemento a elemento.v1 <- c(9,5,10)

sqrt(v1)

3.000000 2.236068 3.162278

VECTORES: funciones relevantes

o Si aplicamos una operación sobre vectores de diferente tamaño, el vector más corto se recicla

o Ejemplo:> d <- c(2,4)

> e <- c(1,3,5,7)

> d+e

[1] 3 7 7 11

TIPOS DE DATOSo Simples:

Numéricos Lógicos Caracteres Cadenas

o Compuestos Vectores Listas Matrices Marcos de datos

LISTAS: constructores Una lista es una colección de elementos que

pueden ser de distintos tipos y que generalmente están identificados por un nombre.

Para crear una lista se utiliza la función list> Lst <- list(hombre = "Pedro", mujer = "María", casados = TRUE,

número.hijos = 3, edad.hijos = c(4, 7, 9))

LISTAS: accesores y modificadores Para obtener los elementos de una lista se

utiliza el operador $> Lst$hombre

[1] Pedro

> Lst$casados

[1] TRUE

> Lst$edad.hijos

[1] 4 7 9

LISTAS: accesores y modificadores Utilizando los corchetes [ ] y vectores

podemos obtener sublistas.> Lst[c("hombre", "número.hijos")]

$hombre

[1] "Pedro"

$número.hijos

[1] 3

LISTAS: accesores y modificadores También podemos usar un vector de valores

lógicos

> Lst[c(TRUE, FALSE, FALSE, TRUE, FALSE)]

$hombre

[1] "Pedro"

$número.hijos

[1] 3

LISTAS: accesores y modificadores Podemos acceder por los índices de la

siguiente forma:

> Lst[c(1, 4)]

$hombre

[1] "Pedro"

$número.hijos

[1] 3

LISTAS: accesores y modificadores Podemos poner índices negativos para no

obtener los datos correspondientes:> Lst[c(-2, -3, -5)]

$hombre

[1] "Pedro"

$número.hijos

[1] 3

This work is licensed under the Creative Commons Attribution-NonCommercial NoDerivs 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/3.0/.

Estas transparencias están basadas en el material docente desarrollado por Francisco J. Romero Campero e Ignacio Pérez Hurtado de Mendoza para la asignatura Informática Aplicada a la Bioquímica del Grado Conjunto en Bioquímica por la Universidad de Sevilla y la Universidad de Málaga (Andalucía Tech). Este trabajo está liberado bajo la licencia Creative Commons Attribution-NonCommercial NoDerivs 3.0 Unported License.