You are on page 1of 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
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 DATOS
o Simples:
 Numéricos
 Lógicos
 Caracteres
 Cadenas

o Compuestos
 Vectores
 Matrices
 Marcos de datos
 Listas
TIPOS DE DATOS
o 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)
5
o 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
vector
sum(v)
17

o Las funciones mean() y median() calculan


respectivamente la media y la mediana de los
elementos de un vector
mean(v)
3.4
median(v)
2
VECTORES: funciones relevantes
o La función sort() ordena los elementos de un
vector
sort(v)
0 0 2 5 10

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


elementos repetidos
unique(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 2
o 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 DATOS
o 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.

You might also like