From c38542ba981dc05fd5f480eb7832984544c0da40 Mon Sep 17 00:00:00 2001 From: Jorge Fernando De Los Rios Date: Mon, 6 Jun 2022 01:13:24 -0500 Subject: [PATCH 1/2] Varios cambios: * Agregado requirements.txt y script.sh * Se ignora algunos archivos producidos pro python. * Se corrige ./teoria/Tema2.Rmd --- .gitignore | 146 +++++++++++++++++++++++++++++++++++++++++++++-- requirements.txt | 3 + script.sh | 8 +++ teoria/Tema2.Rmd | 54 +++++++++--------- 4 files changed, 177 insertions(+), 34 deletions(-) create mode 100644 requirements.txt create mode 100644 script.sh diff --git a/.gitignore b/.gitignore index 3bd3b4ea..d47e9289 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +## ------------------------R---------------------------------------------- + # History files .Rhistory .Rapp.history @@ -5,6 +7,9 @@ # Session Data files .RData +# User-specific files +.Ruserdata + # Example code in package build process *-Ex.R @@ -25,17 +30,146 @@ vignettes/*.pdf .httr-oauth # knitr and R markdown default cache directories -/*_cache/ +*_cache/ /cache/ # Temporary files created by R markdown *.utf8.md *.knit.md -# Shiny token, see https://shiny.rstudio.com/articles/shinyapps.html -rsconnect/ -.Rproj.user +# R Environment Variables +.Renviron + + + +## ------------------------Python---------------------------------------------- + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json -##Deleted by JB -.DS_Store +# Pyre type checker +.pyre/ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..68e149c9 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +jupyter +pandas +matplotlib \ No newline at end of file diff --git a/script.sh b/script.sh new file mode 100644 index 00000000..f98a9681 --- /dev/null +++ b/script.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +python -m venv .env # Crea ambiente en path (carpeta) .env +source .env/Scripts/activate # activa el ambiente +python -m pip install --upgrade pip +pip install wheel +pip install -r requirements.txt # Lee el archivo requirements.txt e instala los modulos que esten escritos en este +deactivate \ No newline at end of file diff --git a/teoria/Tema2.Rmd b/teoria/Tema2.Rmd index e5ce8725..a6b4ce13 100644 --- a/teoria/Tema2.Rmd +++ b/teoria/Tema2.Rmd @@ -377,13 +377,14 @@ La función `text{}` nos permite introducir texto en fórmulas matemáticas. Los bloques de código de R dentro de un documento R Markdown se indican de la manera siguiente
-`r ''` ```{r} +` ```{r}` ` x = 1+1` ` x` -`r ''` ```
+` ``` ` + que resulta en @@ -398,28 +399,25 @@ Hay diversas opciones de crear un bloque de código de R: - Ir al menú desplegable de "Chunks" y seleccionar el de R - Introducir manualmente -- Alt + Command + I (para Mac) o Alt + Control + I (para Windows) +- Alt + Command + I (para Mac) o Alt + Ctrl + I (para Windows) ## Chunks de R A los chunks se les puede poner etiqueta, para así localizarlos de manera más fácil. Por ejemplo
-`r ''` ```{r PrimerChunk} +` ```{r PrimerChunk}` ` x = 1+2+3` -`r ''` ```
- -\n - +` ``` `
-`r ''` ```{r SegundoChunk} +` ```{r SegundoChunk}` ` y = 1*2*3` -`r ''` ```
+` ``` ` @@ -442,7 +440,7 @@ Código | Significado ## Parámetros de los chunks
-`r ''` ```{r, echo=FALSE} +` ```{r, echo=FALSE}` ` sec = 10:20` @@ -450,7 +448,7 @@ Código | Significado `cumsum(sec)` -`r ''` ```
+` ``` ` \n @@ -459,13 +457,13 @@ No aparece ## Parámetros de los chunks
-`r ''` ```{r, echo=TRUE, message = TRUE} +` ```{r, echo=TRUE, message = TRUE}` `library(car)` `head(cars,3)` -`r ''` ```
+` ``` ` \n @@ -477,13 +475,13 @@ head(cars,3) ## Parámetros de los chunks
-`r ''` ```{r, echo=TRUE, message = FALSE, comment = NA} +` ```{r, echo=TRUE, message = FALSE, comment = NA}` `library(car)` `head(cars,3)` -`r ''` ```
+` ``` ` \n @@ -501,13 +499,13 @@ Significado | Código | Resultado `results` | `markup` | Valor por defecto. Nos muestra los resultados en el documento final línea a línea, encabezados por `##` `results` | `hide` | No se nos muestra el resultado en el documento final `results` | `asis` | Nos devuelve los resultados línea a línea de manera literal en el documento final y el programa con el que se abre el documento final los interpreta como texto y formatea adecuadamente -`results` | `hold` | Miestra todos los resultados al final del bloque de código +`results` | `hold` | Muestra todos los resultados al final del bloque de código ## Parámetros de los chunks
-`r ''` ```{r, echo=TRUE, results = "markup"} +` ```{r, echo=TRUE, results = "markup"}` ` sec = 10:20` @@ -515,7 +513,7 @@ Significado | Código | Resultado `cumsum(sec)` -`r ''` ```
+` ``` ` \n @@ -529,7 +527,7 @@ cumsum(sec)
-`r ''` ```{r, echo=TRUE, results = "hide"} +` ```{r, echo=TRUE, results = "hide"}` ` sec = 10:20` @@ -537,7 +535,7 @@ cumsum(sec) `cumsum(sec)` -`r ''` ```
+` ``` ` \n @@ -551,7 +549,7 @@ cumsum(sec)
-`r ''` ```{r, echo=TRUE, results = "asis"} +` ```{r, echo=TRUE, results = "asis"}` ` sec = 10:20` @@ -559,7 +557,7 @@ cumsum(sec) `cumsum(sec)` -`r ''` ```
+` ``` ` \n @@ -573,7 +571,7 @@ cumsum(sec)
-`r ''` ```{r, echo=TRUE, results = "hold"} +` ```{r, echo=TRUE, results = "hold"}` ` sec = 10:20` @@ -581,7 +579,7 @@ cumsum(sec) `cumsum(sec)` -`r ''` ```
+` ``` ` \n @@ -597,14 +595,14 @@ cumsum(sec) Con lo explicado hasta ahora, solamente hemos generado resultados en la línea aparte -Para introducir una parte de código dentro de un párrafo y que se ejecute al comilarse el documento mostrando así el resultado final, hay que hacerlo utilizando `` `r "\u0060r ...\u0060"` `` +Para introducir una parte de código dentro de un párrafo y que se ejecute al compilarse el documento mostrando así el resultado final, hay que hacerlo utilizando `` `r "\u0060r ...\u0060"` ``
**Ejemplo** -La raíz cuadrada de 64 es `` `r "\u0060r sqrt(64)\u0060"` `` o, lo que viene siendo lo mismo, $\sqrt{64}=$`` `r "\u0060r sqrt(64)\u0060"` `` +La raíz cuadrada de 64 es `` `r "\u0060r sqrt(64)\u0060"` `` o, lo que viene siendo lo mismo, $\sqrt{64}=$ `` `r "\u0060r sqrt(64)\u0060"` `` -La raíz quinta de 32 es `r sqrt(64)` o, lo que viene siendo lo mismo, $\sqrt{64}=$`r sqrt(32)` +La raíz quinta de 32 es `r 32^(1/5)` o, lo que viene siendo lo mismo, $\sqrt[5]{32}=$ `r 32^(1/5)`
From 9ebeb53c42b8a22696c03cfa18d34dc1b881939c Mon Sep 17 00:00:00 2001 From: Jorge Fernando De Los Rios Date: Mon, 13 Jun 2022 13:34:51 -0500 Subject: [PATCH 2/2] modificado Tema3.Rmd . Corregido error ortografico y agregados espacios. --- teoria/Tema3.Rmd | 80 ++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/teoria/Tema3.Rmd b/teoria/Tema3.Rmd index 16d54fdd..9d5e58b0 100644 --- a/teoria/Tema3.Rmd +++ b/teoria/Tema3.Rmd @@ -31,11 +31,11 @@ En los vectores de `R`, todos sus objetos han de ser del mismo tipo: todos núme - ```c()```: para definir un vector - ```scan()```: para definir un vector - ```fix(x)```: para modificar visualmente el vector $x$ -- ```rep(a,n)```: para definir un vector constante que contiene el dato $a$ repetido $n$ veces +- ```rep(a, n)```: para definir un vector constante que contiene el dato $a$ repetido $n$ veces ```{r} -c(1,2,3) -rep("Mates",7) +c(1, 2, 3) +rep("Mates", 7) ``` @@ -57,7 +57,7 @@ Vamos a crear un vector que contenga 3 copias de 1 9 9 8 0 7 2 6 con la función 1. Repite tu año de nacimiento 10 veces 2. Crea el vector que tenga como entradas $16, 0, 1, 20, 1, 7, 88, 5, 1, 9$, llámalo vec y modifica la cuarta entrada con la función fix() - +
@@ -69,11 +69,11 @@ Vamos a crear un vector que contenga 3 copias de 1 9 9 8 0 7 2 6 con la función ## Progresiones y Secuencias Una progresión aritmética es una sucesión de números tales que la **diferencia**, $d$, de cualquier par de términos sucesivos de la secuencia es constante. -$$a_n = a_1 + (n-1)\cdot d$$ +$$a_n = a_1 + (n - 1) \cdot d$$ -- ``seq(a,b,by=d)``: para generar una [progresión aritmética](https://es.wikipedia.org/wiki/Progresión_aritmética) de diferencia $d$ que empieza en $a$ hasta llegar a $b$ -- ```seq(a,b, length.out=n)```: define progresión aritmética de longitud $n$ que va de $a$ a $b$ con diferencia $d$. Por tanto $d=(b-a)/(n-1)$ -- ```seq(a,by=d, length.out=n)```: define la progresión aritmética de longitud $n$ y diferencia $d$ que empieza en $a$ +- ``seq(a, b, by = d)``: para generar una [progresión aritmética](https://es.wikipedia.org/wiki/Progresión_aritmética) de diferencia $d$ que empieza en $a$ hasta llegar a $b$ +- ```seq(a, b, length.out = n)```: define progresión aritmética de longitud $n$ que va de $a$ a $b$ con diferencia $d$. Por tanto $d = (b - a) / (n - 1)$ +- ```seq(a, by = d, length.out = n)```: define la progresión aritmética de longitud $n$ y diferencia $d$ que empieza en $a$ - ```a:b```: define la secuencia de números **enteros** ($\mathbb{Z}$) consecutivos entre dos números $a$ y $b$ @@ -84,9 +84,9 @@ $$a_n = a_1 + (n-1)\cdot d$$ - Imprimid los números del 1 al 20 - Imprimid los 20 primeros números pares - + - Imprimid 30 números equidistantes entre el 17 y el 98, mostrando solo 4 cifras significativas - +
![](Imgs/studytime.png) @@ -97,7 +97,7 @@ $$a_n = a_1 + (n-1)\cdot d$$ Cuando queremos aplicar una función a cada uno de los elementos de un vector de datos, la función `sapply` nos ahorra tener que programar con bucles en `R`: -- ```sapply(nombre_de_vector,FUN=nombre_de_función)```: para aplicar dicha función a todos los elementos del vector +- ```sapply(nombre_de_vector, FUN = nombre_de_función)```: para aplicar dicha función a todos los elementos del vector - ```sqrt(x)```: calcula un nuevo vector con las raíces cuadradas de cada uno de los elementos del vector $x$ ## Funciones @@ -124,7 +124,7 @@ Dado un vector de datos $x$ podemos calcular muchas medidas estadísticas acerca ```{r} cuadrado = function(x){x^2} -v = c(1,2,3,4,5,6) +v = c(1, 2, 3, 4, 5, 6) sapply(v, FUN = cuadrado) mean(v) cumsum(v) @@ -137,7 +137,7 @@ cumsum(v) - ```rev(x)```: invierte el orden de los elementos del vector $x$ ```{r} -v = c(1,7,5,2,4,6,3) +v = c(1, 7, 5, 2, 4, 6, 3) sort(v) rev(v) ``` @@ -181,10 +181,10 @@ rev(v) ## Subvectores ```{r} -v = c(14,5,6,19,32,0,8) +v = c(14, 5, 6, 19, 32, 0, 8) v[2] -v[-c(3,5)] -v[v != 19 & v>15] +v[-c(3, 5)] +v[v != 19 & v > 15] ``` @@ -192,9 +192,9 @@ v[v != 19 & v>15] - ```which(x cumple condición)```: para obtener los índices de las entradas del vector $x$ que satisfacen la condición dada - ```which.min(x)```: nos da la primera posición en la que el vector $x$ toma su valor mínimo -- ```which(x==min(x))```: da todas las posiciones en las que el vector $x$ toma sus valores mínimos +- ```which(x == min(x))```: da todas las posiciones en las que el vector $x$ toma sus valores mínimos - ```which.max(x)```: nos da la primera posición en la que el vector $x$ toma su valor máximo -- ```which(x==max(x))```: da todas las posiciones en las que el vector $x$ toma sus valores máximos +- ```which(x == max(x))```: da todas las posiciones en las que el vector $x$ toma sus valores máximos # Factores @@ -208,7 +208,7 @@ v[v != 19 & v>15] ## La función factor() -- `factor(vector,levels=...)`: define un factor a partir del vector y dispone de algunos parámetros que permiten modificar el factor que se crea: +- `factor(vector, levels = ...)`: define un factor a partir del vector y dispone de algunos parámetros que permiten modificar el factor que se crea: - `levels`: permite especificar los niveles e incluso añadir niveles que no aparecen en el vector - `labels`: permite cambiar los nombres de los niveles @@ -220,17 +220,17 @@ v[v != 19 & v>15] Factor ordenado. Es un factor donde los niveles siguen un orden -- `ordered(vector,levels=...)`: función que define un factor ordenado y tiene los mismos parámetros que factor +- `ordered(vector, levels = ...)`: función que define un factor ordenado y tiene los mismos parámetros que factor ## Factores y factores ordenados ```{r} -fac = factor(c(1,1,1,2,2,3,2,4,1,3,3,4,2,3,4,4), - levels = c(1,2,3,4), labels = c("Sus","Apr","Not","Exc")) +fac = factor(c(1, 1, 1, 2, 2, 3, 2, 4, 1, 3, 3, 4, 2, 3, 4, 4), + levels = c(1, 2, 3, 4), labels = c("Sus", "Apr", "Not", "Exc")) fac -facOrd = ordered(c(1,1,1,2,2,3,2,4,1,3,3,4,2,3,4,4), - levels = c(1,2,3,4), labels = c("Sus","Apr","Not","Exc")) +facOrd = ordered(c(1, 1, 1, 2, 2, 3, 2, 4, 1, 3, 3, 4, 2, 3, 4, 4), + levels = c(1, 2, 3, 4), labels = c("Sus", "Apr", "Not", "Exc")) facOrd ``` @@ -255,7 +255,7 @@ facOrd ## Obtener información de una list ```{r} -x = c(1,-2,3,4,-5,6,7,-8,-9,0) +x = c(1, -2, 3, 4, -5, 6, 7, -8, -9, 0) miLista = list(nombre = "X", vector = x, media = mean(x), sumas = cumsum(x)) miLista ``` @@ -275,12 +275,12 @@ names(miLista) ## Cómo definirlas -- `matrix(vector, nrow=n, byrow=valor_lógico)`: para definir una matriz de $n$ filas formada por las entradas del vector +- `matrix(vector, nrow = n, byrow = valor_lógico)`: para definir una matriz de $n$ filas formada por las entradas del vector - `nrow`: número de filas - `byrow`: si se iguala a TRUE, la matriz se construye por filas; si se iguala a FALSE (valor por defecto), se construye por columnas. -` ncol`: número de columnas (puede usarse en lugar de nrow) - - R muestra las matrices indicando como [$i,$] la fila $i$-ésima y [$,j$] la columna $j$-ésima - - Todas las entradas de una matriz han de ser del mismo tipo de datos +- R muestra las matrices indicando como [$i,$] la fila $i$-ésima y [$,j$] la columna $j$-ésima +- Todas las entradas de una matriz han de ser del mismo tipo de datos ## Cómo definirlas{.exercise} @@ -290,7 +290,7 @@ names(miLista) - ¿Cómo definirías una matriz constante? Es decir, ¿cómo definirías una matriz $A$ tal que $\forall\ i=1,...,n; j = 1,...,m$, $a_{i,j}=k$ siendo $k\in\mathbb{R}$? Como R no admite incógnitas, prueba para el caso específico $n = 3, m = 5, k = 0$ -- Con el vector vec = (1,2,3,4,5,6,7,8,9,10,11,12) crea la matriz +- Con el vector vec = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) crea la matriz $$\begin{pmatrix} 1 & 4 & 7 & 10\\ 2 & 5 & 8 & 11\\ @@ -312,7 +312,7 @@ $$\begin{pmatrix} ## Submatrices -- `matriz[i,j]`: indica la entrada ($i,j$) de la matriz, siendo $i,j\in\mathbb{N}$. Si $i$ y $j$ son vectores de índices, estaremos definiendo la submatriz con las filas pertenecientes al vector $i$ y columnas pertenecientes al vector $j$ +- `matriz[i, j]`: indica la entrada ($i,j$) de la matriz, siendo $i,j\in\mathbb{N}$. Si $i$ y $j$ son vectores de índices, estaremos definiendo la submatriz con las filas pertenecientes al vector $i$ y columnas pertenecientes al vector $j$ - `matriz[i,]`: indica la fila $i$-ésima de la matriz, siendo $i\in\mathbb{N}$ - `matriz[,j]`: indica la columna $j$-ésima de la siendo $j\in\mathbb{N}$ - Si $i$ ($j$) es un vector de índices, estaremos definiendo la submatriz con las filas (columnas) pertenecientes al vector $i$ ($j$) @@ -350,7 +350,7 @@ Dada la matriz $$A = \begin{pmatrix}
```{r} -A = matrix(c(1,2,3,4,5,6,7,8,9), ncol = 3) +A = matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), ncol = 3) dim(A) diag(A) ``` @@ -358,14 +358,14 @@ diag(A) ## Función apply() -- `apply(matriz, MARGIN=..., FUN=función)`: para aplicar otras funciones a las filas o las columnas de una matriz - - `MARGIN`: ha de ser 1 si queremos aplicar la función por filas; 2 si queremos aplicarla por columnas; o c(1,2) si la queremos aplicar a cada entrada +- `apply(matriz, MARGIN = ..., FUN = función)`: para aplicar otras funciones a las filas o las columnas de una matriz + - `MARGIN`: ha de ser 1 si queremos aplicar la función por filas; 2 si queremos aplicarla por columnas; o c(1, 2) si la queremos aplicar a cada entrada ## Función apply() ```{r} -apply(A, MARGIN = c(1,2), FUN = cuadrado) +apply(A, MARGIN = c(1, 2), FUN = cuadrado) apply(A, MARGIN = 1, FUN = sum) apply(A, MARGIN = 2, FUN = sum) ``` @@ -377,7 +377,7 @@ apply(A, MARGIN = 2, FUN = sum) - `+`: para sumar matrices - `*`: para el producto de un escalar por una matriz - `%*%`: para multiplicar matrices -- `mtx.exp(matriz,n)`: para elevar la matriz a $n$ +- `mtx.exp(matriz, n)`: para elevar la matriz a $n$ - Del paquete `Biodem` - No calcula las potencias exactas, las aproxima - `%^%`: para elevar matrices @@ -397,7 +397,7 @@ Observad qué ocurre si, siendo $A = \begin{pmatrix} 3 & 2 & 1\\ 1 & 0 & 0\\ 1 & 1 & 1 -\end{pmatrix}$, realizamos las operaciones $A*B$, $A^2$ y $B^3$ +\end{pmatrix}$, realizamos las operaciones $A \cdot B$, $A^2$ y $B^3$
![](Imgs/studytime.png) @@ -409,7 +409,7 @@ Observad qué ocurre si, siendo $A = \begin{pmatrix} - `det(matriz)`: para calcular el determinante de la matriz - `qr(matriz)$rank`: para calcular el rango de la matriz - `solve(matriz)`: para calcular la inversa de una matriz invertible - - También sirve para resolver sistemas de ecuaciones lineales. Para ello introducimos `solve(matriz,b)`, donde $b$ es el vector de términos independientes + - También sirve para resolver sistemas de ecuaciones lineales. Para ello introducimos `solve(matriz, b)`, donde $b$ es el vector de términos independientes ## Valores y vectores propios @@ -423,7 +423,7 @@ Observad qué ocurre si, siendo $A = \begin{pmatrix} ## Valores y vectores propios ```{r} -M = rbind(c(2,6,-8), c(0,6,-3), c(0,2,1)) +M = rbind(c(2, 6, -8), c(0, 6, -3), c(0, 2, 1)) eigen(M) ``` @@ -432,7 +432,7 @@ eigen(M) **Ejercicio** -Comprobad, con los datos del ejemplo anterior, que si $P$ es la matriz de vectores propios de $M$ en columna y $D$ la matriz diagonal cuyas entradas son los valores propios de $M$, entoces se cumple la siguiente igualdad llamada **descomposición canónica**: $$M = P\cdot D\cdot P^{-1}$$ +Comprobad, con los datos del ejemplo anterior, que si $P$ es la matriz de vectores propios de $M$ en columna y $D$ la matriz diagonal cuyas entradas son los valores propios de $M$, entonces se cumple la siguiente igualdad llamada **descomposición canónica**: $$M = P \cdot D \cdot P^{-1}$$
![](Imgs/studytime.png) @@ -447,7 +447,7 @@ Si hay algún vap con multiplicidad algebraica mayor que 1 (es decir, que aparec ## Valores y vectores propios ```{r} -M = matrix(c(0,1,0,-7,3,-1,16,-3,4), nrow=3, byrow=TRUE) +M = matrix(c(0, 1, 0, -7, 3, -1, 16, -3, 4), nrow = 3, byrow = TRUE) eigen(M) ```