Skip to content

Commit

Permalink
Merge pull request #84 from andreavargasmontero/T80
Browse files Browse the repository at this point in the history
Code review + detalles estéticos
  • Loading branch information
mablan authored Nov 2, 2021
2 parents e77d6e6 + 8a58cf7 commit 26368a5
Show file tree
Hide file tree
Showing 22 changed files with 876 additions and 548 deletions.
15 changes: 10 additions & 5 deletions README.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,16 @@ iniciará el proceso de instalación.
## **Errores de instalación**

En caso de que aparezcan mensajes como por ejemplo:

```{r, eval = FALSE}
Warning in install.packages :
package ‘remotes’ is not available (for R version 4.0.2)
```

Lo que debemos hacer es instalar el paquete que nos indica (en el ejemplo anterior
sería el paquete `remotes` que no tenemos instalado). Esto lo hacemos con la
siguiente función:
Lo que debemos hacer es instalar el paquete que nos indica (en el ejemplo
anterior sería el paquete `remotes` que no tenemos instalado). Esto lo hacemos
con la siguiente función:

```{r, eval = FALSE}
install.packages("remotes")
```
Expand All @@ -90,15 +92,18 @@ tutoriales, entre estos los de ixpantia. Deberíamos de poder visualizar algo
similar a la imagen siguiente:

![](man/figures/tutoriales_ejemplo.png)
Para usar uno de los tutoriales nada mas debes presionar el botón `Start Tutorial` y se desplegará el tutorial en tu RStudio o en tu navegador.
Para usar uno de los tutoriales nada mas debes presionar el botón
`Start Tutorial` y se desplegará el tutorial en tu RStudio o en tu navegador.

Notarás que hay en algunos casos dos tutoriales por sesión. Ambos son
ejercicios que se pueden completar de manera autoguiada, sin embargo, si
estás en un curso de ixpantia la distinción va a estar en su uso durante
la sesión o para realizar como tareas.

## Tutorial de uso del paquete en vivo
En [este video](https://www.youtube.com/watch?v=jBSDZ1Juji4) puedes encontrar un tutorial rápido de uso e instalación del paquete. Puedes seguirlo paso a paso para poder utilizar el paquete o bien, como referencia rápida si posteriormente no recuerdas cómo hacerlo.
En [este video](https://www.youtube.com/watch?v=jBSDZ1Juji4) puedes encontrar un tutorial rápido de uso e instalación del paquete. Puedes seguirlo paso a paso
para poder utilizar el paquete o bien, como referencia rápida si posteriormente
no recuerdas cómo hacerlo.

## Ayuda o sugerencias

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@ title: "Sesión extra: Estilo de código"
output:
learnr::tutorial:
language: es
css: https://storage.googleapis.com/datos_cursos/ixpantia_introR/intro_r.css
runtime: shiny_prerendered
description: >
Ejercicios para aprender el estilo de código recomendado en ixpantia?.
---

<style type="text/css">
@import url("https://storage.googleapis.com/datos_cursos/ixpantia_introR/intro_r.css");
</style>

<style>
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono&family=Roboto+Slab&family=Source+Sans+Pro:wght@300;400&display=swap');

Expand All @@ -21,15 +24,25 @@ knitr::opts_chunk$set(echo = FALSE)
```

```{r, echo=FALSE, out.width="35%", fig.align = "center"}
knitr::include_graphics("https://storage.googleapis.com/datos_cursos/ixpantia_introR/ixpantia_logo.png")
knitr::include_graphics(
"https://storage.googleapis.com/datos_cursos/ixpantia_introR/ixpantia_logo.png"
)
```

## Introducción

Hay muchas formas de escribir código en R. Entre mas código escribes, y sobretodo entre mas código tienes que leer, más apreciarás un estilo uniforme. Te permitirá leer tu propio código y volver a entenderlo más fácilmente después de un largo tiempo sin haberlo visto. Además, un estilo uniforme te permitirá trabajar más efectivamente con otros.

Aquí podrás encontrar los diferentes elementos que pueden estar en un guía de estilo. Esta basado en el guia de estilo de Hadley Wickham. Este a su vez esta basado en el guia de estilo de Google. Además, se incluyen las sugerencias que son relevantes para hispanohablantes. Esto porque en el Castellano estamos acostumbrados, entre otras cosas, a tildes, eñes y otros caracteres que necesitan su propia discusión.
Hay muchas formas de escribir código en R. Entre mas código escribes, y
sobretodo entre mas código tienes que leer, más apreciarás un estilo uniforme.
Te permitirá leer tu propio código y volver a entenderlo más fácilmente después
de un largo tiempo sin haberlo visto. Además, un estilo uniforme te permitirá
trabajar más efectivamente con otros.

Aquí podrás encontrar los diferentes elementos que pueden estar en un guía de
estilo. Esta basado en el guía de estilo de Hadley Wickham. Este a su vez esta
basado en el guía de estilo de Google. Además, se incluyen las sugerencias que
son relevantes para hispanohablantes. Esto porque en el Castellano estamos
acostumbrados, entre otras cosas, a tildes, eñes y otros caracteres que
necesitan su propia discusión.

## Nomenclatura

Expand All @@ -39,59 +52,73 @@ Aquí podrás encontrar los diferentes elementos que pueden estar en un guía de

Los archivos deben tener un nombre descriptivo, no tener caracteres especiales (tildes, eñes) y terminar en .R.

#### Ejercicio 1
#### Ejercicio

```{r nombres_docs}
question("¿Cuál (es) de estos nombres de archivos es (son) correcto (s)?",
answer("analisis.R"),
answer("caracterización.R"),
answer("analisis_factorial.R", correct = TRUE),
answer("análisis_confirmatorio.R"),
answer("eda.R", correct = TRUE)
answer("eda.R", correct = TRUE),
correct = "Correcto",
incorrect = "Incorrecto"
)
```

#### Tip 2

Si tu solución o estudio requiere que los archivos se corran en una secuencia predeterminada, añade prefijos con numerales.

#### Ejercicio 2
#### Ejercicio

```{r nombres_docs2}
question("¿Cuál (es) de estos nombres de archivos es (son) correcto (s)?",
answer("primer_script.R"),
answer("1_analisis_exploratorio.R", correct = TRUE),
answer("dos-modelo-predictivo.R")
answer("dos-modelo-predictivo.R"),
correct = "Correcto",
incorrect = "Incorrecto"
)
```

### Objetos

#### Tip 3

Nombres de variables y de funciones deben ser en minúscula y que se ha de usar un guión bajo (_) para separar palabras dentro de un nombre. Usar sustantivos para los nombres de las variables y verbos para las funciones. Nunca uses caracteres especiales como tildes y eñes en tus nombres de objetos.
Nombres de variables y de funciones deben ser en minúscula y que se ha de usar
un guión bajo (_) para separar palabras dentro de un nombre. Usar sustantivos
para los nombres de las variables y verbos para las funciones. Nunca uses
caracteres especiales como tildes y eñes en tus nombres de objetos.

#### Ejercicio

#### Ejercicio 3
```{r nombres_objs}
question("¿Cuál (es) de estos nombres de objetos es (son) correcto (s)?",
answer("primer_cuartil", correct = TRUE),
answer("CuartilUno"),
answer("C1"),
answer("cuartil_1", correct = TRUE)
answer("cuartil_1", correct = TRUE),
correct = "Correcto",
incorrect = "Incorrecto"
)
```

#### Tip 4

Si usas nombres de funciones que ya están en uso es probable que generes confusión. Trata de evitarlo hasta donde sea posible.
Si usas nombres de funciones que ya están en uso es probable que generes
confusión. Trata de evitarlo hasta donde sea posible.

#### Ejercicio

#### Ejercicio 4
```{r nombres_objs2}
question("¿Cuál (es) de estos nombres de funciones es (son) correcto (s)?",
answer("F <- function(x) read.table(x)"),
answer("lee_tabla <- function(x) read.table(x)",
correct = TRUE),
answer("ls <- function(x) read.table(x)")
answer("ls <- function(x) read.table(x)"),
correct = "Correcto",
incorrect = "Incorrecto"
)
```

Expand All @@ -101,96 +128,121 @@ question("¿Cuál (es) de estos nombres de funciones es (son) correcto (s)?",

#### Tip 5

Antes y después de todos los operadores infijos va un espacio (=, +, <-, etc). Esto aplica aún para el signo equivalente (=) en las llamada de una función. No hay espacios antes de una coma, pero una coma siempre es seguida por un espacio.
Antes y después de todos los operadores infijos va un espacio (=, +, <-, etc).
Esto aplica aún para el signo equivalente (=) en las llamada de una función. No
hay espacios antes de una coma, pero una coma siempre es seguida por un espacio.

#### Ejercicio

#### Ejercicio 5
```{r espacios_num}
question("¿Cuál (es) de estos comandos es (son) correcto (s)?",
answer("profundidad<-round((pies + pulgadas/12), 2)"),
answer("profundidad<-round((pies+pulgadas/12), 2)"),
answer("profundidad <- round((pies+pulgadas/12), 2)"),
answer("profundidad <- round((pies + pulgadas / 12), 2)",
correct = TRUE)
correct = TRUE),
correct = "Correcto",
incorrect = "Incorrecto"
)
```

#### Tip 6

No se usan espacios para `:`, `::` ni `:::`.

#### Ejercicio 6
#### Ejercicio

```{r espacios_dospts}
question("¿Cuál (es) de estos comandos es (son) correcto (s)?",
answer("x <- 2:23", correct = TRUE),
answer("base::round", correct = TRUE),
answer("y <- 10 : 54"),
answer("dplyr :: select()")
answer("dplyr :: select()"),
correct = "Correcto",
incorrect = "Incorrecto"
)
```

#### Tip 7

Antes del paréntesis izquierdo va un espacio, a no ser que estés llamando una función en cual caso no se usa un espacio.
Antes del paréntesis izquierdo va un espacio, a no ser que estés llamando una
función en cual caso no se usa un espacio.

#### Ejercicio

#### Ejercicio 7
```{r espacios_izq}
question("¿Cuál (es) de estos comandos es (son) correcto (s)?",
answer("qplot(x, y)", correct = TRUE),
answer("plot (x, y)"),
answer("if (debug) do(x)", correct = TRUE),
answer("if(condicion)function(x)")
answer("if(condicion)function(x)"),
correct = "Correcto",
incorrect = "Incorrecto"
)
```

#### Tip 8

Cuando quieras introducir mas orden en el código alineándolo, por ejemplo, sobre los símbolos de igualdad, está bien usar espacios para tal efecto

Cuando quieras introducir mas orden en el código alineándolo, por ejemplo,
sobre los símbolos de igualdad, está bien usar espacios para tal efecto

#### Tip 9

Los paréntesis y corchetes ([]) no llevan espacios a su alrededor. Si hay una coma, aplican las convenciones que se mencionaron antes.
Los paréntesis y corchetes `([])` no llevan espacios a su alrededor. Si hay una
coma, aplican las convenciones que se mencionaron antes.

#### Ejercicio

#### Ejercicio 9
```{r parent}
question("¿Cuál (es) de estos comandos es (son) correcto (s)?",
answer("if ( depurando ) x <- 34"),
answer("if (depurando) x <- 34", correct = TRUE),
answer("resultados[1,]"),
answer("resultados[1 ,]"),
answer("resultados[5, 1]", correct = TRUE)
answer("resultados[5, 1]", correct = TRUE),
correct = "Correcto",
incorrect = "Incorrecto"
)
```

### Punto y coma

#### Tip 10

No uses punto y coma dentro del código. No es necesario, y prácticamente ya no se usa.

No uses punto y coma dentro del código. No es necesario, y prácticamente ya no
se usa.

### Llaves

#### Tip 11
Abrir una llave nunca debería ocurrir en su propia línea y siempre se sigue con una línea nueva. Una llave que cierra siempre debe ir en su propia línea a menos que sea else. Siempre usa llaves cuando estás usando construcciones con “if”, aún cuando no es posible no hacerlo.

Abrir una llave nunca debería ocurrir en su propia línea y siempre se sigue con
una línea nueva. Una llave que cierra siempre debe ir en su propia línea a
menos que sea `else`. Siempre usa llaves cuando estás usando construcciones con
`if`, aún cuando no es posible no hacerlo.

### Longitud de lineas

#### Tip 12

Trata de limitar tu código a una longitud de 80 caracteres por linea. Esto cabe cómodamente en una página impresa a un tamaño de la fuente razonable.
Trata de limitar tu código a una longitud de 80 caracteres por linea. Esto cabe
cómodamente en una página impresa a un tamaño de la fuente razonable.

### Asignación

#### Tip 13

Es mejor usar solo `<-` para asignación en vez de `=` y usar el símbolo de igualdad solamente para argumentos dentro de funciones.
Es mejor usar solo `<-` para asignación en vez de `=` y usar el símbolo de
igualdad solamente para argumentos dentro de funciones.

#### Ejercicio

#### Ejercicio 13
```{r asigna}
question("¿Cuál (es) de estos comandos es (son) correcto (s)?",
answer("y <- 23", correct = TRUE) ,
answer("y = 23")
answer("y = 23"),
correct = "Correcto",
incorrect = "Incorrecto"
)
```

Loading

0 comments on commit 26368a5

Please sign in to comment.