Vectores

Un vector es la estructura de datos más sencilla en R. Un vector es una colección de uno o más datos del mismo tipo.
La definicion de un vector de hace de la siguiente forma:

x <- c(10, 9, 8, 7)
x
## [1] 10  9  8  7

Podemos acceder a un solo elemento del vector o a un subconjunto de este de la siguiente manera:

y <- c(10, 9, 8, 7)
y[2]
## [1] 9
y[2:4]
## [1] 9 8 7

Podemos saber de que tipo es un vector con la funcion class()

nombres <- c('Diego', 'Joel', 'Jonathan', 'ivan', 'Daniel')
nombres
## [1] "Diego"    "Joel"     "Jonathan" "ivan"     "Daniel"
class(nombres)
## [1] "character"

Matrices

Una matriz en R igual que en otros lenguajes es un conjunto de elementos del mismo tipo (numérico, carácter, lógico, etc) ordenados en filas y columnas. Las matrices en R se construyen con la función matrix() como se muestra a continuación.

m <- matrix(data = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), nrow =  2, byrow = TRUE)
m
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    6    7    8    9   10

Como podemos notar, la función matrix() presenta 3 argumentos principales:

data = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) indica que se genere un vector con estos valores (en este caso los numeros del 1 al 10).
nrow = 2 Indica que van a formarse 2 filas con los valores anteriores.
byrow = TRUE se refiere a que esos números se van a incorporar a la matriz de izquierda a derecha y de arriba a abajo.

Vemos qué si ponemos byrow = FALSE la matriz se ha rellenado con los datos de arriba a abajo y de izquierda a derecha.

n <- matrix(data = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), nrow =  2, byrow = FALSE)
n
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    3    5    7    9
## [2,]    2    4    6    8   10

Como tenemos 10 números hemos decidido generar tantas filas y columnas para que esos 10 números estuvieran bien repartidos (2×5) ¿Qué pasa si ponemos un número de filas que no sea múltiplo de 10, por ejemplo 3?

o <- matrix(data = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), nrow =  3, byrow = TRUE)
## Warning in matrix(data = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), nrow = 3, byrow =
## TRUE): la longitud de los datos [10] no es un submúltiplo o múltiplo del número
## de filas [3] en la matriz

Nos sale un mensaje de advertencia indicándonos precisamente eso, que el 3 no es un múltiplo o submúltiplo de 10, por lo tanto los campos faltantes son llenados automaticamente.

Añadir nombre a las columnas

Usamos la funcion colnames() para agregar nombre a las columnas.
Usamos la funcion rownames() para agregar nombre a las filas.

p <- matrix(data = c(1, 2, 3, 4, 5, 9, 10, 8, 9, 10), nrow =  5, byrow = FALSE)  
colnames(p) <- c("Id", "Calif")
rownames(p) <- c("Diego", "Jonathan", "Joel", "Javier", "Miguel")
p
##          Id Calif
## Diego     1     9
## Jonathan  2    10
## Joel      3     8
## Javier    4     9
## Miguel    5    10