# Matriz en R
matrix(data = c(1, 20, 40, 50))
## [,1]
## [1,] 1
## [2,] 20
## [3,] 40
## [4,] 50
# Matriz con número de columnas
matrix(data = c(1, 10, 20, 30), ncol = 2)
## [,1] [,2]
## [1,] 1 20
## [2,] 10 30
# Matriz con número de columnas por fila
matrix(data = c(1, 10, 20, 30), ncol = 2, byrow = TRUE)
## [,1] [,2]
## [1,] 1 10
## [2,] 20 30
# Asignando una matriz
mi_matriz <- matrix(data = seq(from = 1, to = 2000, by = 40), ncol = 5)
mi_matriz
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 401 801 1201 1601
## [2,] 41 441 841 1241 1641
## [3,] 81 481 881 1281 1681
## [4,] 121 521 921 1321 1721
## [5,] 161 561 961 1361 1761
## [6,] 201 601 1001 1401 1801
## [7,] 241 641 1041 1441 1841
## [8,] 281 681 1081 1481 1881
## [9,] 321 721 1121 1521 1921
## [10,] 361 761 1161 1561 1961
names(mi_matriz)
## NULL
# Crear una matriz asignando nombre
mi_matriz2 <- matrix(data = c(1, 3, 5, 6), ncol = 2,
dimnames = list(c("F1", "F2"), c("C1", "C2")))
mi_matriz2
## C1 C2
## F1 1 5
## F2 3 6
dimnames(mi_matriz2)
## [[1]]
## [1] "F1" "F2"
##
## [[2]]
## [1] "C1" "C2"
# Cambiando los nombres de la matriz
dimnames(mi_matriz2) <- list(c("N1", "N2"), c("M1", "M2"))
mi_matriz2
## M1 M2
## N1 1 5
## N2 3 6
# Número de filas, columnas, promedio de filas, columnas
rownames(mi_matriz2)
## [1] "N1" "N2"
colnames(mi_matriz2)
## [1] "M1" "M2"
nrow(mi_matriz)
## [1] 10
ncol(mi_matriz)
## [1] 5
dim(mi_matriz)
## [1] 10 5
rowMeans(mi_matriz)
## [1] 801 841 881 921 961 1001 1041 1081 1121 1161
colMeans(mi_matriz)
## [1] 181 581 981 1381 1781
rowSums(mi_matriz)
## [1] 4005 4205 4405 4605 4805 5005 5205 5405 5605 5805
colSums(mi_matriz)
## [1] 1810 5810 9810 13810 17810
mi_matriz2
## M1 M2
## N1 1 5
## N2 3 6
mi_matriz2[1, 2]
## [1] 5
mi_matriz2[1, ] # la fila 1 con todas las columnas
## M1 M2
## 1 5
mi_matriz2[, 1] # la columna 1 con todas las filas
## N1 N2
## 1 3
mi_matriz2["N1", "M2"]
## [1] 5
#
mi_matriz
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 401 801 1201 1601
## [2,] 41 441 841 1241 1641
## [3,] 81 481 881 1281 1681
## [4,] 121 521 921 1321 1721
## [5,] 161 561 961 1361 1761
## [6,] 201 601 1001 1401 1801
## [7,] 241 641 1041 1441 1841
## [8,] 281 681 1081 1481 1881
## [9,] 321 721 1121 1521 1921
## [10,] 361 761 1161 1561 1961
mi_matriz[3, c(3, 4)] # fila 3 y columnas 3 y 4
## [1] 881 1281
mi_matriz[c(4, 5), 1] # filas 4 y 5 y columna 1
## [1] 121 161
mi_lista <- list(a = c("a", "b", "c"), b = mi_matriz, bd = iris)
mi_lista
## $a
## [1] "a" "b" "c"
##
## $b
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 401 801 1201 1601
## [2,] 41 441 841 1241 1641
## [3,] 81 481 881 1281 1681
## [4,] 121 521 921 1321 1721
## [5,] 161 561 961 1361 1761
## [6,] 201 601 1001 1401 1801
## [7,] 241 641 1041 1441 1841
## [8,] 281 681 1081 1481 1881
## [9,] 321 721 1121 1521 1921
## [10,] 361 761 1161 1561 1961
##
## $bd
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## 7 4.6 3.4 1.4 0.3 setosa
## 8 5.0 3.4 1.5 0.2 setosa
## 9 4.4 2.9 1.4 0.2 setosa
## 10 4.9 3.1 1.5 0.1 setosa
## 11 5.4 3.7 1.5 0.2 setosa
## 12 4.8 3.4 1.6 0.2 setosa
## 13 4.8 3.0 1.4 0.1 setosa
## 14 4.3 3.0 1.1 0.1 setosa
## 15 5.8 4.0 1.2 0.2 setosa
## 16 5.7 4.4 1.5 0.4 setosa
## 17 5.4 3.9 1.3 0.4 setosa
## 18 5.1 3.5 1.4 0.3 setosa
## 19 5.7 3.8 1.7 0.3 setosa
## 20 5.1 3.8 1.5 0.3 setosa
## 21 5.4 3.4 1.7 0.2 setosa
## 22 5.1 3.7 1.5 0.4 setosa
## 23 4.6 3.6 1.0 0.2 setosa
## 24 5.1 3.3 1.7 0.5 setosa
## 25 4.8 3.4 1.9 0.2 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 27 5.0 3.4 1.6 0.4 setosa
## 28 5.2 3.5 1.5 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 30 4.7 3.2 1.6 0.2 setosa
## 31 4.8 3.1 1.6 0.2 setosa
## 32 5.4 3.4 1.5 0.4 setosa
## 33 5.2 4.1 1.5 0.1 setosa
## 34 5.5 4.2 1.4 0.2 setosa
## 35 4.9 3.1 1.5 0.2 setosa
## 36 5.0 3.2 1.2 0.2 setosa
## 37 5.5 3.5 1.3 0.2 setosa
## 38 4.9 3.6 1.4 0.1 setosa
## 39 4.4 3.0 1.3 0.2 setosa
## 40 5.1 3.4 1.5 0.2 setosa
## 41 5.0 3.5 1.3 0.3 setosa
## 42 4.5 2.3 1.3 0.3 setosa
## 43 4.4 3.2 1.3 0.2 setosa
## 44 5.0 3.5 1.6 0.6 setosa
## 45 5.1 3.8 1.9 0.4 setosa
## 46 4.8 3.0 1.4 0.3 setosa
## 47 5.1 3.8 1.6 0.2 setosa
## 48 4.6 3.2 1.4 0.2 setosa
## 49 5.3 3.7 1.5 0.2 setosa
## 50 5.0 3.3 1.4 0.2 setosa
## 51 7.0 3.2 4.7 1.4 versicolor
## 52 6.4 3.2 4.5 1.5 versicolor
## 53 6.9 3.1 4.9 1.5 versicolor
## 54 5.5 2.3 4.0 1.3 versicolor
## 55 6.5 2.8 4.6 1.5 versicolor
## 56 5.7 2.8 4.5 1.3 versicolor
## 57 6.3 3.3 4.7 1.6 versicolor
## 58 4.9 2.4 3.3 1.0 versicolor
## 59 6.6 2.9 4.6 1.3 versicolor
## 60 5.2 2.7 3.9 1.4 versicolor
## 61 5.0 2.0 3.5 1.0 versicolor
## 62 5.9 3.0 4.2 1.5 versicolor
## 63 6.0 2.2 4.0 1.0 versicolor
## 64 6.1 2.9 4.7 1.4 versicolor
## 65 5.6 2.9 3.6 1.3 versicolor
## 66 6.7 3.1 4.4 1.4 versicolor
## 67 5.6 3.0 4.5 1.5 versicolor
## 68 5.8 2.7 4.1 1.0 versicolor
## 69 6.2 2.2 4.5 1.5 versicolor
## 70 5.6 2.5 3.9 1.1 versicolor
## 71 5.9 3.2 4.8 1.8 versicolor
## 72 6.1 2.8 4.0 1.3 versicolor
## 73 6.3 2.5 4.9 1.5 versicolor
## 74 6.1 2.8 4.7 1.2 versicolor
## 75 6.4 2.9 4.3 1.3 versicolor
## 76 6.6 3.0 4.4 1.4 versicolor
## 77 6.8 2.8 4.8 1.4 versicolor
## 78 6.7 3.0 5.0 1.7 versicolor
## 79 6.0 2.9 4.5 1.5 versicolor
## 80 5.7 2.6 3.5 1.0 versicolor
## 81 5.5 2.4 3.8 1.1 versicolor
## 82 5.5 2.4 3.7 1.0 versicolor
## 83 5.8 2.7 3.9 1.2 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 85 5.4 3.0 4.5 1.5 versicolor
## 86 6.0 3.4 4.5 1.6 versicolor
## 87 6.7 3.1 4.7 1.5 versicolor
## 88 6.3 2.3 4.4 1.3 versicolor
## 89 5.6 3.0 4.1 1.3 versicolor
## 90 5.5 2.5 4.0 1.3 versicolor
## 91 5.5 2.6 4.4 1.2 versicolor
## 92 6.1 3.0 4.6 1.4 versicolor
## 93 5.8 2.6 4.0 1.2 versicolor
## 94 5.0 2.3 3.3 1.0 versicolor
## 95 5.6 2.7 4.2 1.3 versicolor
## 96 5.7 3.0 4.2 1.2 versicolor
## 97 5.7 2.9 4.2 1.3 versicolor
## 98 6.2 2.9 4.3 1.3 versicolor
## 99 5.1 2.5 3.0 1.1 versicolor
## 100 5.7 2.8 4.1 1.3 versicolor
## 101 6.3 3.3 6.0 2.5 virginica
## 102 5.8 2.7 5.1 1.9 virginica
## 103 7.1 3.0 5.9 2.1 virginica
## 104 6.3 2.9 5.6 1.8 virginica
## 105 6.5 3.0 5.8 2.2 virginica
## 106 7.6 3.0 6.6 2.1 virginica
## 107 4.9 2.5 4.5 1.7 virginica
## 108 7.3 2.9 6.3 1.8 virginica
## 109 6.7 2.5 5.8 1.8 virginica
## 110 7.2 3.6 6.1 2.5 virginica
## 111 6.5 3.2 5.1 2.0 virginica
## 112 6.4 2.7 5.3 1.9 virginica
## 113 6.8 3.0 5.5 2.1 virginica
## 114 5.7 2.5 5.0 2.0 virginica
## 115 5.8 2.8 5.1 2.4 virginica
## 116 6.4 3.2 5.3 2.3 virginica
## 117 6.5 3.0 5.5 1.8 virginica
## 118 7.7 3.8 6.7 2.2 virginica
## 119 7.7 2.6 6.9 2.3 virginica
## 120 6.0 2.2 5.0 1.5 virginica
## 121 6.9 3.2 5.7 2.3 virginica
## 122 5.6 2.8 4.9 2.0 virginica
## 123 7.7 2.8 6.7 2.0 virginica
## 124 6.3 2.7 4.9 1.8 virginica
## 125 6.7 3.3 5.7 2.1 virginica
## 126 7.2 3.2 6.0 1.8 virginica
## 127 6.2 2.8 4.8 1.8 virginica
## 128 6.1 3.0 4.9 1.8 virginica
## 129 6.4 2.8 5.6 2.1 virginica
## 130 7.2 3.0 5.8 1.6 virginica
## 131 7.4 2.8 6.1 1.9 virginica
## 132 7.9 3.8 6.4 2.0 virginica
## 133 6.4 2.8 5.6 2.2 virginica
## 134 6.3 2.8 5.1 1.5 virginica
## 135 6.1 2.6 5.6 1.4 virginica
## 136 7.7 3.0 6.1 2.3 virginica
## 137 6.3 3.4 5.6 2.4 virginica
## 138 6.4 3.1 5.5 1.8 virginica
## 139 6.0 3.0 4.8 1.8 virginica
## 140 6.9 3.1 5.4 2.1 virginica
## 141 6.7 3.1 5.6 2.4 virginica
## 142 6.9 3.1 5.1 2.3 virginica
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
class(mi_lista)
## [1] "list"
names(mi_lista)
## [1] "a" "b" "bd"
mi_lista$b # por nombre
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 401 801 1201 1601
## [2,] 41 441 841 1241 1641
## [3,] 81 481 881 1281 1681
## [4,] 121 521 921 1321 1721
## [5,] 161 561 961 1361 1761
## [6,] 201 601 1001 1401 1801
## [7,] 241 641 1041 1441 1841
## [8,] 281 681 1081 1481 1881
## [9,] 321 721 1121 1521 1921
## [10,] 361 761 1161 1561 1961
mi_lista[2] # por posición (con atributos)
## $b
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 401 801 1201 1601
## [2,] 41 441 841 1241 1641
## [3,] 81 481 881 1281 1681
## [4,] 121 521 921 1321 1721
## [5,] 161 561 961 1361 1761
## [6,] 201 601 1001 1401 1801
## [7,] 241 641 1041 1441 1841
## [8,] 281 681 1081 1481 1881
## [9,] 321 721 1121 1521 1921
## [10,] 361 761 1161 1561 1961
mi_lista[[2]] # por posición (sin atributos)
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 401 801 1201 1601
## [2,] 41 441 841 1241 1641
## [3,] 81 481 881 1281 1681
## [4,] 121 521 921 1321 1721
## [5,] 161 561 961 1361 1761
## [6,] 201 601 1001 1401 1801
## [7,] 241 641 1041 1441 1841
## [8,] 281 681 1081 1481 1881
## [9,] 321 721 1121 1521 1921
## [10,] 361 761 1161 1561 1961
mi_lista[["a"]] # por nombre
## [1] "a" "b" "c"
carro <- c(1, 3, 5)
carro[4] <- 20
carro
## [1] 1 3 5 20
matriz <- matrix(data = c(2, 2, 3, 4), ncol = 2)
matriz
## [,1] [,2]
## [1,] 2 3
## [2,] 2 4
# Añadir nueva columna con cbind()
otro <- c(10, 20)
cbind(matriz, otro)
## otro
## [1,] 2 3 10
## [2,] 2 4 20
# Añadir una nueva fila con rbind()
rbind(matriz, otro)
## [,1] [,2]
## 2 3
## 2 4
## otro 10 20
# Nueva posición en la lista con el operador $
otra_lista <- list(a = 1, b = 2)
otra_lista
## $a
## [1] 1
##
## $b
## [1] 2
otra_lista$nueva <- "Edimer"
otra_lista
## $a
## [1] 1
##
## $b
## [1] 2
##
## $nueva
## [1] "Edimer"
# Nuevo valor con []
otra_lista[4] <- 20
otra_lista
## $a
## [1] 1
##
## $b
## [1] 2
##
## $nueva
## [1] "Edimer"
##
## [[4]]
## [1] 20
# Cargando biblioteca
library(tidyverse)
# Valores separados por comas
datos_comas <- read_csv(file = "imc_total_comas.csv")
datos_comas
# Valores separados por puntos y comas
datos_pcomas <- read_csv2(file = "imc_total_puntocomas.csv")
# Valores separados por otro delimitador
datos_otro <- read_delim(file = "imc_total_otrodelim.csv", delim = "|")
library(readxl)
datos_excel <- read_excel(path = "imc_total.xlsx")
str(datos_excel)
## tibble [19 x 3] (S3: tbl_df/tbl/data.frame)
## $ Genero: chr [1:19] "Hombre" "Mujer" "Mujer" "Mujer" ...
## $ Altura: chr [1:19] "1.70" "1.63" "1.58" "1.63" ...
## $ Peso : num [1:19] 68 56 58 61 53 48 78 72 78 55 ...
datos_excel$Altura <- as.numeric(datos_excel$Altura)
str(datos_excel)
## tibble [19 x 3] (S3: tbl_df/tbl/data.frame)
## $ Genero: chr [1:19] "Hombre" "Mujer" "Mujer" "Mujer" ...
## $ Altura: num [1:19] 1.7 1.63 1.58 1.63 1.58 1.61 1.72 1.85 1.72 1.58 ...
## $ Peso : num [1:19] 68 56 58 61 53 48 78 72 78 55 ...
datos_excel$imc <- datos_excel$Peso / datos_excel$Altura^2
datos_excel
write_csv(x = datos_excel, file = "prueba.csv")