From 30821631092154da447e1abdc87191f1914deb19 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 5 Jan 2022 14:03:44 -0500 Subject: [PATCH 01/52] Functions --- .../Functions-built-in-functions-R-es.txt | 33 +++++++++++++++++++ .../Functions-combining-functions-R-es.txt | 14 ++++++++ .../Functions-default-arguments-R-es.txt | 18 ++++++++++ exercises-es/Functions-for-loop-R-es.txt | 23 +++++++++++++ exercises-es/Functions-string-data-R-es.txt | 23 +++++++++++++ .../Functions-use-and-modify-R-es.txt | 30 +++++++++++++++++ .../Functions-writing-functions-R-es.txt | 18 ++++++++++ 7 files changed, 159 insertions(+) create mode 100644 exercises-es/Functions-built-in-functions-R-es.txt create mode 100644 exercises-es/Functions-combining-functions-R-es.txt create mode 100644 exercises-es/Functions-default-arguments-R-es.txt create mode 100644 exercises-es/Functions-for-loop-R-es.txt create mode 100644 exercises-es/Functions-string-data-R-es.txt create mode 100644 exercises-es/Functions-use-and-modify-R-es.txt create mode 100644 exercises-es/Functions-writing-functions-R-es.txt diff --git a/exercises-es/Functions-built-in-functions-R-es.txt b/exercises-es/Functions-built-in-functions-R-es.txt new file mode 100644 index 000000000..7f7da7a36 --- /dev/null +++ b/exercises-es/Functions-built-in-functions-R-es.txt @@ -0,0 +1,33 @@ +--- +layout: exercise +topic: Functions +title: Built-in Functions +language: R +translation: es +titulo: Funciones predeterminadas +--- +Una función predefinida es aquella ya incluida que puede ser utilizada sin la necesidad de descargarla en un paquete o librería. Algunos ejemplos incluyen: + +* `abs ()` devuelve el valor absoluto de un número (por ejemplo, `abs (-2`)) +* `round ()`, redondea un número (el primer argumento) a un número predefinido de lugares decimales (el segundo argumento) (por ejemplo, `round (12.1123, 2)`) +* `sqrt ()`, devuelve la raíz cuadrada de el número especificado(por ejemplo, `sqrt (4)`) +* `tolower ()`, convierte una cadena de caracteres a minúsculas (por ejemplo, `tolower (" HOLA ")`) +* `toupper ()`, convierte una cadena de caracteres a mayúsculas (por ejemplo, `toupper (" hola ")`) + +Utilice estas funciones predefinidas para imprimir los siguientes elementos: + +1. El valor absoluto de -15.5 +2. 4.483847 redondeado a una cifra decimal +3. 3.8 redondeado al número entero más cercano. * No es necesario especificar el número de + lugares decimales en este caso si no lo desea, ya que `round ()` + esta predefinido a usar `0` si no se indica el segundo argumento. Use + `help (round)` o `? round` para ver como se indica. * +4. "species" `en mayúsculas. +5. "SPECIES" `en minúsculas. +6. Asigne el valor de la raíz cuadrada de 2.6 a una variable. Luego, redondee la + variable que ha creado a 2 cifra decimales y asígnela a otra + variable. Imprime el valor redondeado. + +* Desafío opcional *: haga lo mismo establecido en la tarea 6 (* inmediatamente arriba *), pero en lugar de +crear la variable intermedia, realice tanto la raíz cuadrada como el redondeo +en una sola línea poniendo la función `sqrt ()` dentro de la función `round ()`. \ No newline at end of file diff --git a/exercises-es/Functions-combining-functions-R-es.txt b/exercises-es/Functions-combining-functions-R-es.txt new file mode 100644 index 000000000..82fe9d0b1 --- /dev/null +++ b/exercises-es/Functions-combining-functions-R-es.txt @@ -0,0 +1,14 @@ +--- +layout: exercise +topic: Functions +title: Combining Functions +language: R +translation: es +titulo: Combinando funciones +--- +Este es un seguimiento de [Argumento predeterminado]({{site.baseurl}}/ejercicios-es/Funciones-argumentos-predeterminados-R). + +Utilizar el sistema métrico para medir es un procedimiento estándar para los científicos, pero cuando se desea comunicar resultados de manera más amplia, puede ser +útil utilizar unidades de medidas distintas (al menos en algunos países). +Escriba una función llamada `convert_kg_to_pounds` que convierta kilogramos en libras (` libras = 2.205 * kg`). +Use esta función y la función `get_mass_from_length ()` de [Argumentos predeterminados] ({{site.baseurl}} / ejercicios / Funciones-argumentos-predeterminados-R) para estimar el peso, en libras, de un Estegosaurio de 12 m de largo con `a = 10.95` y` b = 2.64` (Los valores estimados de `a` y` b` para * Stegosauria * de [Seebacher 2001] (http://www.jstor.org/stable/4524171)). \ No newline at end of file diff --git a/exercises-es/Functions-default-arguments-R-es.txt b/exercises-es/Functions-default-arguments-R-es.txt new file mode 100644 index 000000000..af33fce0f --- /dev/null +++ b/exercises-es/Functions-default-arguments-R-es.txt @@ -0,0 +1,18 @@ +--- +layout: exercise +topic: Functions +title: Default Arguments +language: R +translation: es +titulo: Argumentos por defecto +--- +Este es un seguimiento de [Usar y modificar] ({{site.baseurl}} / ejercicios / Funciones-usar-y-modificar-R). + +Permitir que `a` y` b` pasen como argumentos a `get_mass_from_length ()` hizo que la función fuera más flexible, pero para algunos tipos de dinosaurios no tenemos valores específicos de `a` y` b`, por lo que tenemos utilizar valores generales que se puedan aplicar a distintas especies. + +Reescriba la función `get_mass_from length ()` de [Usar y modificar]({{site.baseurl}}/exercises-es/Funciones-usar-y-modificar-R) para que sus argumentos tengan valores predetefinidos de `a = 39.9` y `b = 2.6` (los valores promedio de [Seebacher 2001] (http://www.jstor.org/stable/4524171)). + +1. Utilice esta función para estimar la masa de un Sauropoda (`a = 214.44`,` b = 1.46`) que + mide 22 m de largo (configurando `a` y` b` al llamar a la función). +2. Utilice esta función para estimar la masa de un dinosaurio de un grupo taxonómico desconocido que mide 16 m de largo. + Solo pase la función `length`, no pase` a` o `b`, para que se utilicen los valores predefinidos. \ No newline at end of file diff --git a/exercises-es/Functions-for-loop-R-es.txt b/exercises-es/Functions-for-loop-R-es.txt new file mode 100644 index 000000000..ff31d3dc7 --- /dev/null +++ b/exercises-es/Functions-for-loop-R-es.txt @@ -0,0 +1,23 @@ +--- +layout: exercise +topic: Functions +title: for Loop +language: R +translation: es +titulo: for Loop +--- +Esta tarea es continuación de [Funciones anidadas]({{site.baseurl}}/exercises-es/Funciones-combinando-funciones-R). + +1. Ahora que ha impresionado a la abuela, es hora de ser científicos serios. + Tome el siguiente vector de longitudes de estegosaurio + +``` + lengths <- c(10.1, 9.5, 11.2, 9.8, 10.4, 12.0, 11.5, 9.5, +9.8, 10.0, 10.7, 10.2, 11.9, 9.7, 11.2, 11.8, 10.7) +``` + +y estime la masa en kilogramos para cada una de las longitudes del vector usando el bucle (loop) `for`, usando su función para estimar masa, `a = 10.95` y` b = 2.64`. Imprima el +resultados en orden. + +2. Esta es una buena manera de aprender a usar un bucle (loop) "for", pero gracias a la vectorización +en R también podemos pasar todo el vector `lengths` a nuestra función. Pase el vector a la función y estime la masa para cada longitud e imprima el resultado. \ No newline at end of file diff --git a/exercises-es/Functions-string-data-R-es.txt b/exercises-es/Functions-string-data-R-es.txt new file mode 100644 index 000000000..e516078aa --- /dev/null +++ b/exercises-es/Functions-string-data-R-es.txt @@ -0,0 +1,23 @@ +--- +layout: exercise +topic: Functions +title: String Data +language: R +translation: es +titulo: Cadenas de datos +translation: es +--- +Este es un seguimiento de [Strings from Data] ({{site.baseurl}}/exercises-es/Strings-strings-from-data-R /). + +Un colega ha elaborado un archivo con una secuencia de ADN en cada línea. Descargue +[el archivo] ({{site.baseurl}} / data / dna-sequence-1.txt) y cárguelo en R usando +`read.csv ()`. El archivo no tiene encabezado. + +Escribe una función para calcular el contenido de GC. El contenido de GC es el porcentaje de bases +que son G o C como porcentaje del total de pares de bases. Su función debería +tomar una secuencia de ADN como entrada y devolver el contenido de GC de esa secuencia. Imprima +el resultado de cada secuencia. + +* Antes de conocer acerca de funciones, hubiéramos tenido que tomar cada secuencia de ADN una a una y luego volver a escribir o copiar y pegar el mismo código para analizar cada una. ¿No es esto mejor? * + +* Es posible que haya notado que [for Loop] ({{site.baseurl}} / ejercicios / Functions-for-loop-R /) imprime los resultados de manera diferente. `read.csv ()` importa los datos como un `data.frame ()`, esto en contraste con los vector numéricos del ejercicio anterior. * \ No newline at end of file diff --git a/exercises-es/Functions-use-and-modify-R-es.txt b/exercises-es/Functions-use-and-modify-R-es.txt new file mode 100644 index 000000000..aae803906 --- /dev/null +++ b/exercises-es/Functions-use-and-modify-R-es.txt @@ -0,0 +1,30 @@ +--- +layout: exercise +topic: Functions +title: Use and Modify +language: R +translation: es +titulo: Usando y modificando funciones +--- +La longitud de un organismo suele estar altamente correlacionada con su masa corporal. Esto es útil ya que nos permite estimar la masa de un organismo aun cuando solo conocemos su longitud. Esta relación generalmente toma la forma: + +> mass = a * length^b + +Donde los parámetros "a" y "b" varían entre grupos. Este método alométrico es +utilizado regularmente para estimar la masa corporal de los dinosaurios, ya que solo se han preservado sus huesos. + +La siguiente función estima la masa de un organismo en kilogramos como función de su +longitud en metros para unos parametors a y b en particular, los de * Theropoda * +(donde "a" se ha estimado como "0.73" y "b" se ha calculado como "3.63"; +[Seebacher 2001] (http://www.jstor.org/stable/4524171)). + +```r +get_mass_from_length_theropoda <- function(length){ + mass <- 0.73 * length ^ 3.63 + return(mass) +} +``` + +1. Utilice esta función para imprimir la masa de un Spinosaurus de 16 m de largo basándose en su esqueleto reensamblado. +2. Cree una nueva versión de esta función llamada `get_mass_from_length ()` que reciba `length`,` a` y `b` como argumentos y use el siguiente código para estimar la masa ` mass <- a * length ^ b` . +Utilice esta función para estimar la masa de un Sauropoda (`a = 214.44`,` b = 1.46`) que mide 26 m de largo. \ No newline at end of file diff --git a/exercises-es/Functions-writing-functions-R-es.txt b/exercises-es/Functions-writing-functions-R-es.txt new file mode 100644 index 000000000..a45baf7eb --- /dev/null +++ b/exercises-es/Functions-writing-functions-R-es.txt @@ -0,0 +1,18 @@ +--- +layout: exercise +topic: Functions +title: Writing Functions +language: R +translation: es +titulo: Escribiendo funciones +--- +Copie la siguiente función en su tarea y reemplace el `________` con nombres de variables para el input y output. + +```r +convert_pounds_to_grams <- function(________) { + grams = 453.6 * pounds + return(________) +} +``` + +Use la función para calcular cuántos gramos hay en 3.75 libras (pounds). \ No newline at end of file From 2556da5307bed7a9cdb714c480281ed9ee4dc38e Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 5 Jan 2022 14:10:52 -0500 Subject: [PATCH 02/52] Knitr --- exercises-es/Knitr-BBS-R-es.txt | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 exercises-es/Knitr-BBS-R-es.txt diff --git a/exercises-es/Knitr-BBS-R-es.txt b/exercises-es/Knitr-BBS-R-es.txt new file mode 100644 index 000000000..f0e1ac0a2 --- /dev/null +++ b/exercises-es/Knitr-BBS-R-es.txt @@ -0,0 +1,52 @@ +--- +layout: exercise +topic: Knitr +title: Reproducible Breeding Bird Survey Analysis +language: R +translation: es +titulo: Un estudio de reproducción de aves reproducible +--- +Está interesado en comprender cómo varía la biodiversidad de las aves en +respuesta a las variables ambientales. Quiere que su análisis sea reproducible, así que usa `knitr` y` rmarkdown`. Específicamente quiere saber cómo species richness (abundancia de especies: el número de especies vistas en un sitio) varía en respuesta a la temperatura media anual y la precipitación media anual. + +1. Inicie un nuevo documento "Rmd", asigne un título, asigne un autor y establezca el formato de salida como `html_document`. +2. Agregue un markdown chunk (trozo de código) que describa la pregunta que va a hacer. +3. Agregue un markdown chunk (trozo de código) que cargue los paquetes necesarios. Oculte el texto de cuando los paquetes se cargan usando `message = FALSE`. +4. Agregue un header (encabezado) relacionado a la descarga e importación de datos. +5. Agregue una sección de texto que describa brevemente los dos conjuntos de datos que va a utilizar. +6. Agregue un markdown chunk (trozo de código) para descargar los datos de Breeding Bird Surveys usando el Paquete `rdataretriever`. Instrucciones para instalar este paquete y el + paquete de Python asociado están disponibles en el + [Data Retriever] (https://www.data-retriever.org/). Tomará un + mucho tiempo para descargar y convertir estos datos en un conjunto de archivos CSV utilizables + (~ 30 minutos), así que agregue una declaración condicional que verifique si los archivos necesarios ya han sido creados y solo instale los datos si + no existen. No muestre la salida de este markdown chunk. +7. Agregue un markdown chunk (trozo de código) para cargar las tablas de especies, recuentos y rutas en R y muestre las primeras filas de cada tabla. +8.Haga un mapa de las ubicaciones de todas las rutas de Breeding Bird Surveys, + incluyendo el contorno de la masa continental de América del Norte. Agrega un encabezado (header) sobre este mapa describiendo lo que muestra. Puede obtener un mapa del mundo usando + `usmap = map_data (" world ")`, que luego puede trazar usando `geom_polygon`. + Para mostrar solo estos datos en la región de las rutas de la Breeding Bird Surveys, agregue + lo siguiente para su comando `ggplot`: + + ``` + scale_x_continuous(limits = c(min(routes$longitude), max(routes$longitude))) + + scale_y_continuous(limits = c(min(routes$latitude), max(routes$latitude))) + ``` + +9. Utilice la función `getData` del paquete `raster` para obtener los datos de bioclim (`getData ('worldclim', var = 'bio', res = 10)`) y `extraer` los valores + para cada ruta. Convierta la matriz resultante en un marco de datos y `select` solo + la temperatura media anual (bio1) y la precipitación media anual (bio1). + Utilice `cbind` para combinar estas dos columnas de variables predictoras con la tabla de rutas. +10. Determine la riqueza de especies en cada ruta del año 2015. Para obtener rutas únicas + necesitará agrupar por las columnas `statenum` y` route`. Una estos datos con los datos que obtuvo en (7). Visualice los datos de la nueva tabla. +11.Haga dos gráficas, que muestren la relación entre `bio1` y + `riqueza` ,` bio12` y `riqueza`. Incluya los puntos de datos no procesados y una + línea suave a través de ellos. (* opcional *) Intente hacer esto con una función si + quiero un desafío extra. +12. Escriba una breve sección de conclusiones que proporcione su interpretación de los + resultados. +13. Regrese a la sección de datos de su documento y agregue citas para ambos + conjuntos de datos. Deberá crear un archivo `.bib` para contener su bibtex + citas. Puede obtener bibtex para las citas buscando en Google + Scholar de "Breeding Bird Survey" y "Worldclim", haciendo clic en el botón `"` + y seleccionando `bibtex`. También debe agregar un header (encabezado) `References` en + la parte inferior de su documento ya que las referencias aparecerán al final. \ No newline at end of file From a236e76ab8629b509e7e1c66ae387744d026badc Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 5 Jan 2022 14:19:56 -0500 Subject: [PATCH 03/52] Dplyr --- .../Dplyr-shrub-volume-aggregation-R-es.txt | 17 +++++++++++++++++ exercises-es/Dplyr-shrub-volume-join-R-es.txt | 10 ++++++++++ exercises-es/Portal-data-aggregation-R-es.txt | 6 ++++++ exercises-es/Portal-data-challenge-R-es.txt | 5 +++++ exercises-es/Portal-data-joins-R-es.txt | 11 +++++++++++ ...extracting-vectors-from-data-frames-R-es.txt | 5 +++++ 6 files changed, 54 insertions(+) create mode 100644 exercises-es/Dplyr-shrub-volume-aggregation-R-es.txt create mode 100644 exercises-es/Dplyr-shrub-volume-join-R-es.txt create mode 100644 exercises-es/Portal-data-aggregation-R-es.txt create mode 100644 exercises-es/Portal-data-challenge-R-es.txt create mode 100644 exercises-es/Portal-data-joins-R-es.txt create mode 100644 exercises-es/extracting-vectors-from-data-frames-R-es.txt diff --git a/exercises-es/Dplyr-shrub-volume-aggregation-R-es.txt b/exercises-es/Dplyr-shrub-volume-aggregation-R-es.txt new file mode 100644 index 000000000..6e0392d2f --- /dev/null +++ b/exercises-es/Dplyr-shrub-volume-aggregation-R-es.txt @@ -0,0 +1,17 @@ +Este ejercicio es una continuación de [Shrub Volume Data Basics]({{ site.baseurl }}/exercises/Dplyr-shrub-volume-data-basics-R). + +La Dra. Granger quiere un resumen de datos tanto para las plantas en su sitio de estudio como para sus experimentos.Verifique si el archivo `shrub-volume-data.csv` está en su espacio de trabajo (es posible que su instructor ya lo haya agregado). + +Si no, descárgue [shrub dimensions data]({{ site.baseurl }}/data/shrub-volume-data.csv). + +Este código calcula la altura promedio de una planta en cada sitio: + + +```r +shrub_dims <- read.csv('shrub-volume-data.csv') +by_site <- group_by(shrub_dims, site) +avg_height <- summarize(by_site, avg_height = mean(height)) +``` + +1. Modifique el código para calcular e imprimir la altura promedio de una planta en cada experimento. +2. Utilice `max()` para determinar la altura máxima de una planta en cada sitio de estudio. \ No newline at end of file diff --git a/exercises-es/Dplyr-shrub-volume-join-R-es.txt b/exercises-es/Dplyr-shrub-volume-join-R-es.txt new file mode 100644 index 000000000..f8ec1aece --- /dev/null +++ b/exercises-es/Dplyr-shrub-volume-join-R-es.txt @@ -0,0 +1,10 @@ +En adición a la tabla de datos principal de dimensiones de arbustos, la Dra. Granger tiene dos tablas de datos adicionales. +La primera describe la manipulación de cada experimento. +La segunda contiene información sobre los diferentes sitios de estudio. +Verifique si los archivos espacio de trabajo (es posible que su instructor ya los haya agregado). +De lo contrario, descargue los [datos de experimentos] ({{site.baseurl}} / data / shrub-volume-experiment.csv) y los [datos de sitios] ({{site.baseurl}} / data / shrub-volume-sites. csv). + +1. Importe la tabla de datos de los experimentos. Luego, use `inner_join` combinando la tabla de datos de experimentos con la tabla de datos de dimensiones de arbustos, con el fin de añadir una columna llamada `manipulación` a la tabla de datos de dimensiones de arbustos. + +2. Importe la tabla de sitios de estudio. Luego combínela con la tabla que contiene los datos de dimensiones de arbustos y los datos de experimentos. El producto final debe contener las tres tablas en una. + diff --git a/exercises-es/Portal-data-aggregation-R-es.txt b/exercises-es/Portal-data-aggregation-R-es.txt new file mode 100644 index 000000000..788d5b119 --- /dev/null +++ b/exercises-es/Portal-data-aggregation-R-es.txt @@ -0,0 +1,6 @@ +Descargue una copia de la [Tabla de datos de estudios de la base de datos educativa de Portal] (https://ndownloader.figshare.com/files/2292172) +e impórtela a R usando la función `read.csv ()`. + +1. Utilice las funciones `group_by ()` y `summary ()` para obtener un conteo del número de individuos por cada species ID (ID de especie). +2. Utilice las funciones `group_by ()` y `summary ()` para obtener un conteo de la cantidad de individuos por cada ID de especie por cada año. +3. Utilice las funciones `filter ()`, `group_by ()` y `summary ()` para obtener la masa promedio de la especie DO por cada año. diff --git a/exercises-es/Portal-data-challenge-R-es.txt b/exercises-es/Portal-data-challenge-R-es.txt new file mode 100644 index 000000000..2b16e2a97 --- /dev/null +++ b/exercises-es/Portal-data-challenge-R-es.txt @@ -0,0 +1,5 @@ +Cree un pipeline para manipular los datos en la tabla `surveys` de Portal que produzca una tabla de datos para las tres especies de Dipodomys ("DM", "DO", "DS"). +ID de especie debe presentarse en minúsculas, no en mayúsculas. +La tabla debe contener información sobre la fecha, identificación de especie, peso y longitud del hindfoot (retropié). +Los datos no deben incluir valores nulos para el peso o para la longitud del retropié. +La tabla debe estar ordenada primero por especies (de modo que cada especie esté agrupada) y luego por peso, con los pesos más grandes en la parte superior. \ No newline at end of file diff --git a/exercises-es/Portal-data-joins-R-es.txt b/exercises-es/Portal-data-joins-R-es.txt new file mode 100644 index 000000000..4ac6e89a3 --- /dev/null +++ b/exercises-es/Portal-data-joins-R-es.txt @@ -0,0 +1,11 @@ +Si `survey.csv`,` species.csv` y `plots.csv` no están disponibles en su espacio de trabajo, descárguelos: + +* [`survey.csv`] (https://ndownloader.figshare.com/files/2292172) +* [`species.csv`] (https://ndownloader.figshare.com/files/3299483) +* [`plots.csv`] (https://ndownloader.figshare.com/files/3299474) + +Cárguelos en R usando `read.csv ()`. + +1. Use `inner_join ()` para crear una tabla de datos que contenga la información tanto de la tabla de datos de encuestas como de la tabla de datos de `especies`. +2. Use `inner_join ()` dos veces para crear una tabla de datos que contenga la información de las tres tablas de datos. +3. Use `inner_join ()` y `filter ()` para obtener un marco de datos (data frame) con la información de la tabla de datos de `surveys` (estudios) y la tabla de datos de `plots` (parcela) donde `plot_type` (tipo de parcela) es `Control`. \ No newline at end of file diff --git a/exercises-es/extracting-vectors-from-data-frames-R-es.txt b/exercises-es/extracting-vectors-from-data-frames-R-es.txt new file mode 100644 index 000000000..bde69cc60 --- /dev/null +++ b/exercises-es/extracting-vectors-from-data-frames-R-es.txt @@ -0,0 +1,5 @@ +Usando la tabla de `surveys` (estudios) de datos de Portal: + +1. Use `$` para extraer la columna de `weight` en un vector +2. Utilice `[]` para extraer la columna `month` en un vector +3. Extraiga la columna `hindfoot_length`, guárdela en un vector y calcule la longitud media de hindfoot (retropié) ignorando los valores nulos. \ No newline at end of file From f43944b9d2c07a9c29529f18d336cd9dfd20b44d Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 5 Jan 2022 14:44:38 -0500 Subject: [PATCH 04/52] Regular Expressions --- ...gular-expressions-find-the-rodents-R-es.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 exercises-es/Regular-expressions-find-the-rodents-R-es.md diff --git a/exercises-es/Regular-expressions-find-the-rodents-R-es.md b/exercises-es/Regular-expressions-find-the-rodents-R-es.md new file mode 100644 index 000000000..8d64066ad --- /dev/null +++ b/exercises-es/Regular-expressions-find-the-rodents-R-es.md @@ -0,0 +1,29 @@ +--- +layout: exercise +topic: Regular Expressions +title: Find the Rodents +language: R +translation: es +título: Expresiones regulares +--- +Existe gran diversidad de fuentes de datos biológicos en el mundo moderno, +pero no todos los datos están bien estructurados. Para +un proyecto, usted necesita una lista de todas las especies de roedores +en el mundo. Encontrará una gran lista de roedores en [el primer +link] (http://en.wikipedia.org/wiki/List_of_rodents) en una búsqueda de Google +para *List of Rodents*. + +Desafortunadamente, está en HTML y, en general, se considera que extraer de HTML +Es una pesadilla. Afortunadamente es un artículo de Wikipedia y +Wikipedia tiene una característica que nos permite ver el código fuente (wiki +markup) que se utiliza para construir el HTML. Esto es lo mismo que veríamos si hiciéramos clic en la pestaña `Edit` del artículo, pero mas accesible ya que es un +archivo de texto simple. Esto se puede hacer usando la URL general: + +`http: //en.wikipedia.org/w/index.php? title = PAGETITLE & action = raw` + +donde `PAGETITLE` se reemplaza con el título real de la página. + +Descargue el wiki markup y escriba una corta secuencia de comandos (script) usando +expresiones que extraigan la lista de todos las denominaciones latinas (latin binomials) de la página. +Exporte esta lista como un archivo de texto, con una especie por línea, con género y especies separadas por una coma. + From 6badd1e3ac2a39426751738a670ee9791afa7f6f Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 5 Jan 2022 15:03:22 -0500 Subject: [PATCH 05/52] Good Style --- Good-style-format-the-code-R-es.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Good-style-format-the-code-R-es.md diff --git a/Good-style-format-the-code-R-es.md b/Good-style-format-the-code-R-es.md new file mode 100644 index 000000000..30b4f8bd2 --- /dev/null +++ b/Good-style-format-the-code-R-es.md @@ -0,0 +1,14 @@ +--- +layout: exercise +topic: Good Style +title: Format the Code +language: R +--- + +Programar computadoras permite a los científicos hacer ciencia interesante. En general, desarrollar programas de investigación que sean transparentes, colaborativos y reproducibles es una gran ventaja para la ciencia. Todos los científicos de datos pueden contribuir a este objetivo escribiendo su código en scripts fácilmente legibles, bien descritos y bien comentados. + +[Este script] ({{site.baseurl}}/code/bad-style-RR), que evalúa [la composición de árboles en un pantano de Michigan] (http://www.esapubs.org/archive/ecol/E090/251/default.html), no sigue un buen estilo. *Funciona, pero es difícil entender lo que está haciendo el código.* + +- Descargue [el script] ({{site.baseurl}}/code/bad-style-R.R). +- Tóme un minuto para comprender lo que se supone que hace el código. +- Modifique el código para que siga haciendo lo mismo, mejore el estilo y hága el código más fácil de leer. \ No newline at end of file From b689da2589864321a5a24a2e8cfc0652516d7ed5 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 5 Jan 2022 15:06:48 -0500 Subject: [PATCH 06/52] Rename Good-style-format-the-code-R-es.md to exercises-es/Good-style-format-the-code-R-es.md --- .../Good-style-format-the-code-R-es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename Good-style-format-the-code-R-es.md => exercises-es/Good-style-format-the-code-R-es.md (95%) diff --git a/Good-style-format-the-code-R-es.md b/exercises-es/Good-style-format-the-code-R-es.md similarity index 95% rename from Good-style-format-the-code-R-es.md rename to exercises-es/Good-style-format-the-code-R-es.md index 30b4f8bd2..aa4fc694e 100644 --- a/Good-style-format-the-code-R-es.md +++ b/exercises-es/Good-style-format-the-code-R-es.md @@ -11,4 +11,4 @@ Programar computadoras permite a los científicos hacer ciencia interesante. En - Descargue [el script] ({{site.baseurl}}/code/bad-style-R.R). - Tóme un minuto para comprender lo que se supone que hace el código. -- Modifique el código para que siga haciendo lo mismo, mejore el estilo y hága el código más fácil de leer. \ No newline at end of file +- Modifique el código para que siga haciendo lo mismo, mejore el estilo y hága el código más fácil de leer. From 435b66ef26daec15134d4854558bf114aaf27f7a Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 5 Jan 2022 15:23:55 -0500 Subject: [PATCH 07/52] typo in html and unitended url? Link http://www.esapubs.org/archive/ecol/E090/251/default.htm is missing an l and redirects to: https://esapubs.org/archive/ which might not be intended --- exercises/Good-style-format-the-code-R.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exercises/Good-style-format-the-code-R.md b/exercises/Good-style-format-the-code-R.md index 3711060ad..29fafc933 100644 --- a/exercises/Good-style-format-the-code-R.md +++ b/exercises/Good-style-format-the-code-R.md @@ -7,7 +7,7 @@ language: R Programming computers to do cool science is a major advantage for modern scientists. But, developing research programs that are transparent, collaborative and reproducible is a major advantage for science. All data scientists can contribute to this goal by writing their code in easily readable, well described, and well commented scripts. -[This script]({{ site.baseurl }}/code/bad-style-R.R), which evaluates [tree composition in a Michigan swamp](http://www.esapubs.org/archive/ecol/E090/251/default.htm), doesn't follow +[This script]({{ site.baseurl }}/code/bad-style-R.R), which evaluates [tree composition in a Michigan swamp](http://www.esapubs.org/archive/ecol/E090/251/default.html), doesn't follow good style. *It works, but it's difficult to understand exactly what it is doing.* - Download [the script]({{ site.baseurl }}/code/bad-style-R.R). From 4384d2247afb516392218c4266b6905a7b2754bc Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:47:34 -0500 Subject: [PATCH 08/52] R-SQL --- exercises-es/R-sql-automate-query-R-es.md | 22 ++++++++++++++++ exercises-es/R-sql-connect-and-query-R-es.md | 24 +++++++++++++++++ exercises-es/R-sql-data-stream-R-es.md | 26 +++++++++++++++++++ exercises-es/R-sql-export-to-database-R-es.md | 20 ++++++++++++++ 4 files changed, 92 insertions(+) create mode 100644 exercises-es/R-sql-automate-query-R-es.md create mode 100644 exercises-es/R-sql-connect-and-query-R-es.md create mode 100644 exercises-es/R-sql-data-stream-R-es.md create mode 100644 exercises-es/R-sql-export-to-database-R-es.md diff --git a/exercises-es/R-sql-automate-query-R-es.md b/exercises-es/R-sql-automate-query-R-es.md new file mode 100644 index 000000000..8f5b300da --- /dev/null +++ b/exercises-es/R-sql-automate-query-R-es.md @@ -0,0 +1,22 @@ +--- +layout: exercise +topic: R-SQL +title: Automate Query +language: R +--- + +This is a follow-up to [Connect and Query]({{ site.baseurl }}/exercises/R-sql-connect-and-query-R). + +Dr. Undómiel agrees with you that the difference in male and female +*D. spectabilis* hind foot length and weight seems pretty small, but wants to +have a reference point for comparison. She wants you to find the male and female +hind foot length and weight for all species of rodent on all of the plots (not +just the controls). + +Produce a data frame with `species_id`, `sex`, `avg_hindfoot_length`, and +`avg_weight` for each species. Your data frame should have two rows for each +species, one row for each sex. + +You can solve this problem in a variety of ways including using `dplyr`, a +`GROUP BY` in your SQL query, a `for` loop, or using `apply` statements. Take +whichever approach you like best. diff --git a/exercises-es/R-sql-connect-and-query-R-es.md b/exercises-es/R-sql-connect-and-query-R-es.md new file mode 100644 index 000000000..503b73d8d --- /dev/null +++ b/exercises-es/R-sql-connect-and-query-R-es.md @@ -0,0 +1,24 @@ +--- +layout: exercise +topic: R-SQL +title: Connect and Query +language: R +--- + +This is a follow up to the [Basic Queries filtering problem]({{ site.baseurl }}/exercises/Basic-queries-where-SQL). + +It is clear Dr. Undómiel appreciates your skill working with large databases and +she seems to expect you will maintain your benevolence. (*Such is a fair +expectation of a true wizard*). This time though, she's looking for some extra +detail in her queries. She's curious if desert rodents are [dimorphic](https://en.wikipedia.org/wiki/Sexual_dimorphism) in size. + +1. [Download a new copy](https://ndownloader.figshare.com/files/2292171) of the Portal database. +2. Connect to `portal_mammals.sqlite` using the `RSQLite` package. +3. Start by reminding yourself about which tables are in the database using +`dbListTables()` +4. Then remind yourself of the fields in the `surveys` and `plots` tables using + `dbListFields()`. +5. Select and print out the average hind foot length and average weight of: + - all *Dipodomys spectabilis* individuals on the *control* plots + - male *D. spectabilis* on the *control* plots + - female *D. spectabilis* on the *control* plots diff --git a/exercises-es/R-sql-data-stream-R-es.md b/exercises-es/R-sql-data-stream-R-es.md new file mode 100644 index 000000000..1965d88d0 --- /dev/null +++ b/exercises-es/R-sql-data-stream-R-es.md @@ -0,0 +1,26 @@ +--- +layout: exercise +topic: R-SQL +title: Data Stream +language: R +--- + +This is a follow-up to [Automate Query]({{ site.baseurl }}/exercises/R-sql-automate-query-R). + +Dr. Undómiel is really testing your kindness now. She's seen that all of the +average hind foot length and average weights are pretty similar within species, +but she wants to support the idea with some statistics. + +1. Write a function that selects the `sex`, `hindfoot_length` and `weight` data +for a given species. + +2. Write a function that uses the data from the first function and returns the results of a +`t.test()` of each measurement factored by sex. (*HINT: A `t.test()` takes two primary +arguments: a vector or data frame of values for group a and the same class of data for group +b. The arguments can also be expressed in formula form similar to `aov()`. Be sure to +assign the results to an object (`test <- t.test()`), so you can extract the *p*-value from the +object (`test$p.value`) to include in your results.*) + +3. Loop through the rodent species at Portal and generate an output data frame +with the `species_id`, `p_hindfoot_length`, `p_weight`. (*HINT: You are +likely to run into some issues of insufficient data that you should skip in your loop.*) diff --git a/exercises-es/R-sql-export-to-database-R-es.md b/exercises-es/R-sql-export-to-database-R-es.md new file mode 100644 index 000000000..77593630c --- /dev/null +++ b/exercises-es/R-sql-export-to-database-R-es.md @@ -0,0 +1,20 @@ +--- +layout: exercise +topic: R-SQL +title: Export to Database +language: R +--- + +Dr. Undómiel has decided to focus on the change in size of a few target rodent +species over the course of the experiment(1977-2002). She has chosen , *Dipodymys spectabilis*, *Onychomys torridus*, *Perymiscus erimicus*, +*Chaetodipus penicillatus*. + +Write a script that uses R and SQL to: + +1. Connect to the `portal_mammals.sqlite`. +2. Generate a data frame with `year`, `species_id`, and the average weight per +year (`avg_weight`) for each target species. +3. Use `dbWriteTable()` to include your new data frame in the +`portal_mammals.sqlite`. Call it something informative so that Dr. Undómiel can +find it easily. + From 95ba087e75572255de01f785b9af69861a446525 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:48:23 -0500 Subject: [PATCH 09/52] Loops --- Capstone-cocoli-data-exploration-R-es.md | 64 +++++++++++++++++++++ Capstone-length-of-floods-R-es.md | 12 ++++ Loops-basic-for-loops-R-es.md | 54 +++++++++++++++++ Loops-multi-file-analysis-R-es.md | 22 +++++++ Loops-size-estimates-by-name-apply-R-es.md | 23 ++++++++ Loops-size-estimates-by-name-loop-R-es.md | 23 ++++++++ Loops-size-estimates-vectorized-R-es.md | 21 +++++++ Loops-size-estimates-with-maximum-R-es.md | 9 +++ Making-choices-dna-or-rna-iteration-R-es.md | 22 +++++++ Scientific-tree-biomass-challenge-R-es.md | 41 +++++++++++++ 10 files changed, 291 insertions(+) create mode 100644 Capstone-cocoli-data-exploration-R-es.md create mode 100644 Capstone-length-of-floods-R-es.md create mode 100644 Loops-basic-for-loops-R-es.md create mode 100644 Loops-multi-file-analysis-R-es.md create mode 100644 Loops-size-estimates-by-name-apply-R-es.md create mode 100644 Loops-size-estimates-by-name-loop-R-es.md create mode 100644 Loops-size-estimates-vectorized-R-es.md create mode 100644 Loops-size-estimates-with-maximum-R-es.md create mode 100644 Making-choices-dna-or-rna-iteration-R-es.md create mode 100644 Scientific-tree-biomass-challenge-R-es.md diff --git a/Capstone-cocoli-data-exploration-R-es.md b/Capstone-cocoli-data-exploration-R-es.md new file mode 100644 index 000000000..a4a827e3c --- /dev/null +++ b/Capstone-cocoli-data-exploration-R-es.md @@ -0,0 +1,64 @@ +--- +layout: exercise +topic: Capstone +title: Cocili Data Exploration +language: R +--- + +Understanding the spatial distribution of ecological phenomena is central to the +study of natural systems. A group of scientists has collected a dataset on the +size, location, and species identify of all of the trees in a 4 ha site in +Panama call "Cocoli". + +Download the [Cocoli Data](http://ctfs.si.edu/webatlas/datasets/cocoli/cocoli.zip) +and explore the following spatial properties. + +1. Make a single plot showing the location of each tree for all species with + more than 100 individuals. Each species should be in its own subplot (i.e., + facet). Label the subplots with the genus and species names, not the species + code. Scale the size of the point by its stem diameter (use `dbh1`) so that + larger trees display as larger points. Have the code save the plot in a + `figures` folder in your project. +2. [Basal area](https://en.wikipedia.org/wiki/Basal_area) is a common measure in + forest management and ecology. It is the sum of the cross-sectional areas of + all of the trees occuring in some area and can be calculated as the sum of + 0.00007854 * DBH^2 over all of the trees. To look at how basal area varies + across the site divide the site into 100 m^2 sample regions (10 x 10 m cells) + and determining the total basal area in each region. I.e., take all of the + trees in a grid cell where x is between 0 and 10 and y is between 0 and 10 + and determine their basal area. Do the same thing for x between 0 and 10 and + y between 10 and 20, and so on. You can do this using two "nested" for loops + to subset the data and calculate the basal area in that region. Make a plot + that shows how the basal area varies spatially. Since the calculation is for + a square region, plot it that way using `geom_tile()` with the center of the + tile at the center of the region where basal area was calculated. Have the + code save the plot in a `figures` folder in your project. + + +Comprender la distribución espacial de los fenómenos ecológicos es fundamental para la +estudio de los sistemas naturales. Un grupo de científicos ha recopilado datos sobre el tamaño, ubicación e identificación de especies de todos los árboles en un sitio de 4 hectareas en "Cocoli", +Panamá. + +Descargue los [Datos de Cocoli] [Cocoli Data](http://ctfs.si.edu/webatlas/datasets/cocoli/cocoli.zip) +and explore the following spatial properties. + +1. Haga una sola gráfica que muestre la ubicación de cada árbol para todas las especies con + más de 100 individuos. Cada especie debe estar en su propia subgráfica (subplot) (es decir, + faceta). Etiquete las subgráfica (subplots) con los nombres de género y especie, no la especie + código. El tamaño del punto debe ser determinado por el diámetro de tallo (use `dbh1`) para que + los árboles más grandes se muestran como puntos más grandes. Haga que el código guarde las gráficas en un carpeta `figures` en su proyecto. + +2. [Basal area](https://en.wikipedia.org/wiki/Basal_area) es una medida común en el + manejo y conservación de bosques y ecología. Es la suma de las áreas de las secciones + transversales (cross-sectional areas) de + todos los árboles que se encuentran en un área y se puede calcular como la suma de + 0.00007854 * DAP^2 sobre todos los árboles. Para ver cómo varía el área basal + en todo el sitio, divida el sitio en regiones de muestra de 100 m^2 (celdas de 10 x 10 m) + y determine el área basal total en cada región. Es decir, tome todos los + árboles en una celda de cuadrícula donde X está entre: 0 y 10 e Y: entre 0 y 10 + y determine su área basal. Haga lo mismo para X entre: 0 y 10 y para + Y: entre 10 y 20, y así sucesivamente. Puede hacer esto usando dos bucles for (for loops) "anidados" + para crear un subconjunto de los datos y calcular el área basal en esa región. Haga una gráfica + que muestre cómo el área basal varía espacialmente. Como el cálculo es para + una región cuadrada, trácela de esa manera usando `geom_tile()` con el centro de la + mosaico en el centro de la región donde se calculó el área basal. Guarde la gráfica en una carpeta `figures` en su proyecto. \ No newline at end of file diff --git a/Capstone-length-of-floods-R-es.md b/Capstone-length-of-floods-R-es.md new file mode 100644 index 000000000..24d5af623 --- /dev/null +++ b/Capstone-length-of-floods-R-es.md @@ -0,0 +1,12 @@ +--- +layout: exercise +topic: Capstone +title: Length of Floods +language: R +--- + +Usted interesado en estudiar el efecto del tiempo y la duración de los pequeños +eventos de inundación a escala en un ecosistema. Para hacer esto, debe determinar cuándo se producen las inundaciones y su duración según los datos de la estación de aforo. + +Descargar el +[stream guage data for USGS stream gauge site 02236000]({{ site.baseurl }}/data/st_johns_stream_data.csv) de el río St. Johns en Florida. Encuentre las partes continuas de las series de tiempo donde el nivel de la corriente está por encima del umbral de inundación de 2.26 pies y almacene la información sobre la fecha de inicio y la duración de cada inundación en un marco de datos. \ No newline at end of file diff --git a/Loops-basic-for-loops-R-es.md b/Loops-basic-for-loops-R-es.md new file mode 100644 index 000000000..d1caeb464 --- /dev/null +++ b/Loops-basic-for-loops-R-es.md @@ -0,0 +1,54 @@ +--- +layout: exercise +topic: Loops +title: Basic For Loops +language: R +--- +1\. El siguiente código imprime los números del 1 al 5 una línea a la vez. Modifíquelo para imprimir los números del 2 al 16. + +```r +for (i in 1:5){ + print(i) +} +``` + +2\. El siguiente código imprime los números del 1 al 5 una línea a la vez. Modifíquelo para imprimir cada uno de estos números multiplicado por 3. + +```r +for (i in 1:5){ + print(i) +} +``` + +3\. Complete el código a continuación para que imprima el nombre de cada ave una línea a la vez. + +```r +birds = c('robin', 'woodpecker', 'blue jay', 'sparrow') +for (i in 1:length(_________)){ + print(birds[__]) +} +``` + +4\. Complete el código a continuación para que almacene un área para cada radio. + +```r +radius <- c(1.3, 2.1, 3.5) +areas <- vector(_____ = "numeric", length = ______) +for (__ in 1:length(________)){ + areas[__] <- pi * radius[i] ^ 2 +} +areas +``` + + +5\. Complete el siguiente código para calcular un área para cada par de `lengths` y `widths`, almacene las áreas en un vector y, una vez calculadas, imprímalas: + +```r +lengths = c(1.1, 2.2, 1.6) +widths = c(3.5, 2.4, 2.8) +areas <- vector(length = __________) +for (i in _____) { + areas[__] <- lengths[__] * widths[__] +} +areas +``` diff --git a/Loops-multi-file-analysis-R-es.md b/Loops-multi-file-analysis-R-es.md new file mode 100644 index 000000000..a7712f6c8 --- /dev/null +++ b/Loops-multi-file-analysis-R-es.md @@ -0,0 +1,22 @@ +--- +layout: exercise +topic: Loops +title: Multi-file Analysis +language: R +--- +Tiene collares satelitales en varios individuos y desea poder ver rápidamente todos sus movimientos recientes de manera simultánea. +Los datos son publicados diariamente en [url as a zip file]({{ site.baseurl }}/data/individual_collar_data.zip) y contienen un archivo csv para cada individuo: [{{ site.url }}/data/individual_collar_data.zip]({{ site.baseurl }}/data/individual_collar_data.zip) +Comience por: + +* Descargar el archivo zip usando `download.file()` +* Descomprimir el archivo usando `unzip()` +* Obtener una lista de todos los archivos que contengan en su nombre el patrón `"collar-data-.*.txt"` + +1. Use un bucle (loop) para cargar cada uno de estos archivos en R y haga un diagrama de líneas (usando `geom_path()`) para cada archivo con `long` en el eje `x` y `lat` en el eje `y`. +Las gráficas, como otros tipos de salida (outputs), no se muestran dentro de el bucle (loop) a menos que se escriba explícitamente, por lo que debe colocar el comando `ggplot()` dentro de una declaración `print()`. +Incluya el nombre del archivo en la gráfica como título usando `labs()`. + +2. Agregue código al bucle (loop) para calcular la latitud mínima y máxima en el archivo y almacene estos valores, junto con el nombre del archivo, en un marco de datos. +Muestra el marco de datos como salida. + +Si está interesado en ver otra aplicación de bucles for (for loops), [check out the code]({{ site.baseurl }}/code/Data-simulation-for-loops-multi-file-analysis) utilizado para simular los datos de este ejercicio usando bucles for. diff --git a/Loops-size-estimates-by-name-apply-R-es.md b/Loops-size-estimates-by-name-apply-R-es.md new file mode 100644 index 000000000..ffb920eb6 --- /dev/null +++ b/Loops-size-estimates-by-name-apply-R-es.md @@ -0,0 +1,23 @@ +--- +layout: exercise +topic: Loops +title: Size Estimates By Name Apply +language: R +--- +Esta es una continuación de [Size Estimates by Name]({{ site.baseurl }}/exercises/Making-choices-size-estimates-by-name-R). + +Descargue los [data on dinosaur lengths with species names]({{ site.baseurl }}/data/dinosaur_lengths.csv) e impórtelos usando `read.csv()`. + +Escriba una función `get_mass_from_length_by_name()` que use la ecuación `mass <- a * length^b` para estimar el tamaño de un dinosaurio a partir de su longitud. Esta función debe tomar dos argumentos, la `length` y el nombre del grupo de dinosaurios. Dentro de esta función, use las declaraciones `if`/`else if`/`else` para verificar si el nombre es uno de los siguientes valores y, de ser así, establezca `a` y `b` en los valores apropiados. + +* *Stegosauria*: `a = 10.95` and `b = 2.64` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* *Theropoda*: `a = 0.73` and `b = 3.63` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* *Sauropoda*: `a = 214.44` and `b = 1.46` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). + +Si el nombre no es ninguno de estos valores, defina `a = NA` y `b = NA`. + +1. Usa esta función y `mapply()` para calcular la masa estimada de cada dinosaurio. Deberá pasar los datos a `mapply()` como vectores o columnas individuales, no como el marco de datos completo. + +2. Usando `dplyr`, agregue una nueva columna `masses` al marco de datos (usando `rowwise()`, `mutate()` y la función que ha creado) e imprima el resultado en la consola. + +3. Usando `ggplot`, haga un histograma de masas de dinosaurios con una subplot para cada especie (usando `facet_wrap()`). diff --git a/Loops-size-estimates-by-name-loop-R-es.md b/Loops-size-estimates-by-name-loop-R-es.md new file mode 100644 index 000000000..7a019b8d1 --- /dev/null +++ b/Loops-size-estimates-by-name-loop-R-es.md @@ -0,0 +1,23 @@ +--- +layout: exercise +topic: Loops +title: Size Estimates By Name Loop +language: R +--- +Esta es una continuación de [Size Estimates by Name]({{ site.baseurl }}/exercises/Making-choices-size-estimates-by-name-R). + + +Descargue e importe [data on dinosaur lengths with species names]({{ site.baseurl }}/data/dinosaur_lengths.csv). + +Escriba una función `mass_from_length()` que use la ecuación `mass <- a * length^b` para estimar el tamaño de un dinosaurio a partir de su longitud. +Esta función debe tomar dos argumentos, `length` y `species`. Para cada una de las siguientes entradas para "species", utilice los valores dados de `a` y `b` para calcular lo siguiente: + +* Para (for) `Stegosauria`: `a = 10.95` y `b = 2.64` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* Para (for) `Theropoda`: `a = 0.73` y `b = 3.63` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* Para (for) `Sauropoda`: `a` = `214.44` and `b = 1.46` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* Para (for) cualquier otro valor de `species`: `a = 25.37` y `b = 2.49`. + +1. Utilice esta función y un bucle (loop) for para calcular la masa estimada de cada dinosaurio, almacene las masas en un vector y, luego de completar todos los cálculos, muestre los primeros elementos del vector utilizando `head()`. +2. Vuelva a agregar los resultados en el vector al marco de datos original. Muestra las primeras filas del marco de datos usando `head()`. +3. Calcule la masa media de cada 'species' utilizando 'dplyr'. + diff --git a/Loops-size-estimates-vectorized-R-es.md b/Loops-size-estimates-vectorized-R-es.md new file mode 100644 index 000000000..5ceed98ff --- /dev/null +++ b/Loops-size-estimates-vectorized-R-es.md @@ -0,0 +1,21 @@ +--- +layout: exercise +topic: Loops +title: Size Estimates Vectorized +language: R +--- + +Esta es una continuación de [Usar y modificar]({{ site.baseurl }}/exercises/Functions-use-and-modify-R). + +1. Escriba una función llamada `mass_from_length_theropoda()` que tome `length` como argumento para obtener una estimación de los valores de masa del dinosaurio *Theropoda*. Use la ecuación `masa <- 0.73 * length^3.63`. Copie los siguientes datos en R y pase el vector completo a su función para calcular la masa estimada de cada dinosaurio. + +`Theropoda_lengths <- c (17,8013631070471, 20,3764452071665, 14,0743486294308, 25,65782386974, 26,0952008049675, 20,3111541103134, 17,5663244372533, 11,2563431277577, 20,081903202614, 18,6071626441984, 18,0991894513166, 23,0659685685892, 20,5798853467837, 25,6179254233558, 24,3714331573996, 26,2847248252537, 25,4753783544473, 20,4642089867304, 16,0738256364701, 20,3494171706583, 19,854399305869, 17,7889814608919, 14,8016421998303, 19,6840911485379, 19,4685885050906, 24,4807784966691, 13,3359960054899, 21,5065994598917, 18,4640304608411, 19,5861532398676, 27,084751999756, 18,9609366301798, 22,4829168046521, 11,7325716149514, 18,3758846100456, 15,537504851634, 13,4848751773738, 7,68561192214935, 25,5963348603783, 16,588285389794) ` + +2. Cree una nueva versión de la función llamada `mass_from_length()` que use la ecuación `mass <- 0.73 * length^3.63` y tome `length`, `a` y `b` como argumentos. En los argumentos de la función, establezca los valores predeterminados para `a` en `0.73` y `b` en `3.63`. Si ejecuta esta función solo con los datos de longitud de la Parte 1, debería obtener el mismo resultado que la Parte 1. Copie los datos a continuación en R y llame a su función usando el vector de longitudes de la Parte 1 (arriba) y estos vectores de valores de `a` y `b` para estimar la masa de los dinosaurios usando diferentes valores de `a` y `b`. + + +`a_Values ​​<- C (0.759, 0.751, 0.74, 0.746, 0.759, 0.746, 0.759, 0.751, 0.749, 0.751, 0.738, 0.768, 0.736, 0.749, 0.746, 0.744, 0.746, 0.744, 0.749, 0.751, 0.749, 0.751, 0.749, 0.751, 0.744, 0.751, 0.744, 0.754, 0.744, 0.754, 0.774, 0.754, 0.774, 0.751, 0.763, 0.749, 0.763, 0.749, 0,741, 0,754, 0,746, 0,755, 0,764, 0,758, 0,76, 0,748, 0,745, 0,756, 0,739, 0,733, 0,757, 0,747, 0,741, 0,752, 0,752, 0,748)` + +`b_values ​​<- c (3.627, 3.633, 3.626, 3.633, 3.627, 3.633, 3.627, 3.629, 3.632, 3.628, 3.633, 3.627, 3.621, 3.63, 3.631, 3.632, 3.628, 3.626, 3.639, 3.626, 3.635, 3.629, 3.635, 3.629, 3.642, 3.632, 3.633, 3.629, 3.62, 3.619, 3.638, 3.627, 3.621, 3.628, 3.628, 3.635, 3.624, 3.621, 3.621, 3.632, 3.627, 3.624, 3.634, 3.621)` + +3. Cree un marco de datos para estos datos usando `dino_data <- data.frame(theropoda_lengths, a_values, b_values)`. Use `dplyr` para agregar una nueva columna `masses` a este marco de datos (usando `mutate()` y su función) e imprima el resultado en la consola. diff --git a/Loops-size-estimates-with-maximum-R-es.md b/Loops-size-estimates-with-maximum-R-es.md new file mode 100644 index 000000000..f3aff9f98 --- /dev/null +++ b/Loops-size-estimates-with-maximum-R-es.md @@ -0,0 +1,9 @@ +--- +layout: exercise +topic: Loops +title: Size Estimates With Maximum +language: R +--- +Esta es una continuación de la Parte 1 [Size Estimates Vectorized]({{ site.baseurl }}/exercises/Loops-size-estimates-vectorized-R). + +Cree una nueva versión de la función `mass_from_length_theropoda()` de la Parte 1 de [Size Estimates Vectorized]({{ site.baseurl }}/exercises/Loops-size-estimates-vectorized-R) llamada `mass_from_length_max()`. Esta función solo debe calcular una masa si el valor de `length` pasado a la función es menor que 20. Si `length` es mayor que 20, debe devuelver `NA` en su lugar. Use `sapply()` y esta nueva función para estimar la masa de los datos de `theropoda_lengths` de [Size Estimates Vectorized]({{ site.baseurl }}/exercises/Loops-size-estimates-vectorized-R). \ No newline at end of file diff --git a/Making-choices-dna-or-rna-iteration-R-es.md b/Making-choices-dna-or-rna-iteration-R-es.md new file mode 100644 index 000000000..8640bdd62 --- /dev/null +++ b/Making-choices-dna-or-rna-iteration-R-es.md @@ -0,0 +1,22 @@ +--- +layout: exercise +topic: Making Choices +title: DNA or RNA Iteration +language: R +--- +Esta es una continuación de [DNA or RNA]({{ site.baseurl }}/exercises/Making-choices-dna-or-rna-R). +Escriba una función, `dna_or_rna(sequence)`, que determine si una secuencia +de pares de bases es ADN, ARN, o si no es posible saberlo dada la +secuencia dada. Ya que lo único lo que la función sabrá sobre el material es la +secuencia, la única forma de diferencias entre el ADN y el ARN es que +el ARN tiene la base uracilo (`"u"`) en lugar de la base timina (`"t"`). Haga que la función devuelva una de las tres salidas: `"DNA"`, `"RNA"` o `"UNKNOWN"`. + +1. Utilice la función y un bucle `for` (for loop) para imprimir el tipo de secuencia en la siguiente lista. +2. Use su función y `sapply` para imprimir el tipo de secuencia en la siguiente lista. + +``` +sequences = c("ttgaatgccttacaactgatcattacacaggcggcatgaagcaaaaatatactgtgaaccaatgcaggcg", "gauuauuccccacaaagggagugggauuaggagcugcaucauuuacaagagcagaauguuucaaaugcau", "gaaagcaagaaaaggcaggcgaggaagggaagaagggggggaaacc", "guuuccuacaguauuugaugagaaugagaguuuacuccuggaagauaauauuagaauguuuacaacugcaccugaucagguggauaaggaagaugaagacu", "gauaaggaagaugaagacuuucaggaaucuaauaaaaugcacuccaugaauggauucauguaugggaaucagccggguc") +``` + + +*Opcional: para un desafío adicional, haga que su función funcione con letras mayusculas y minúsculas, o incluso cadenas con que incluyan ambas* diff --git a/Scientific-tree-biomass-challenge-R-es.md b/Scientific-tree-biomass-challenge-R-es.md new file mode 100644 index 000000000..c0fac73b7 --- /dev/null +++ b/Scientific-tree-biomass-challenge-R-es.md @@ -0,0 +1,41 @@ +--- +layout: exercise +topic: Scientific +title: Tree Biomass Challenge +language: R +--- +Estimar de la cantidad total de biomasa (*la masa total de todos los individuos*) +en los bosques es importante para comprender el presupuesto mundial de carbono y cómo el planeta tierra responderá a los aumentos de emisiones de dióxido de carbono + +Normalmente no medimos la masa de un árbol, pero tomamos una medida de la +diámetro o circunferencia del tronco y luego estimamos su masa. + +Hay muchas ecuaciones para estimar la masa de un árbol a partir de su diámetro, +pero una buena opción es la ecuación: + +Masa = 0.124 * Diámetro2.53 + +donde `Mass` se mide en kg de biomasa seca sobre suelo seca y +`Diámetro` está en cm + +1\. Vamos a estimar la biomasa total de árboles en un area de 96 +hectáreas en las Ghats occidentales en la India. + + * [Download the data]({{ site.baseurl }}/data/ramesh2010-macroplots.csv) y + cargue los datos en R. + * Escriba una función que tome un vector de diámetros de árboles como argumento y + devuelve un vector de masas de árboles. + * Cree un pipeline `dplyr` que + * Agregue una nueva columna (usando `mutate` y la función que escribió) que contenga masas + calculadas a partir de los diámetros + * Agrupe el marco de datos en especies usando la columna `SpCode` + * Y luego calcule la biomasa (es decir, `sum` de las masas) para cada especie + (usando `summarize`) + * Almacene el resultado como un marco de datos + * Muestre el marco de datos resultante + +2\. Haga un histograma de los valores de biomasa de las especies que acaba de calcular. + + * Use 10 intervalos (bins) en el histograma (usando el argumento `bins`) + * Use una escala log10 para el eje x (usando `scale_x_log10`) + * Cambie la etiqueta del eje x a `Biomass` y la etiqueta del eje y a `Number of Species` (usando `labs`) \ No newline at end of file From 2dad969dafdcf607f9da6c53d1a52efa1810b268 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:49:12 -0500 Subject: [PATCH 10/52] Aggregation --- Aggregation-count-Access-es.md | 8 ++++++++ Aggregation-count-SQL-es.md | 11 +++++++++++ Aggregation-sum-Access-es.md | 12 ++++++++++++ Aggregation-sum-SQL-es.md | 13 +++++++++++++ 4 files changed, 44 insertions(+) create mode 100644 Aggregation-count-Access-es.md create mode 100644 Aggregation-count-SQL-es.md create mode 100644 Aggregation-sum-Access-es.md create mode 100644 Aggregation-sum-SQL-es.md diff --git a/Aggregation-count-Access-es.md b/Aggregation-count-Access-es.md new file mode 100644 index 000000000..863ffd4f8 --- /dev/null +++ b/Aggregation-count-Access-es.md @@ -0,0 +1,8 @@ +--- +layout: exercise +topic: Aggregation +title: Count +language: Access] +--- +Escribe una consulta (query) que devuelva el número de todos los individuos (de toas las especies) que han sido capturados en cada año, ordenados cronológicamente. Incluya el año +en la salida. Guárdelo como "Abundancia total por año". \ No newline at end of file diff --git a/Aggregation-count-SQL-es.md b/Aggregation-count-SQL-es.md new file mode 100644 index 000000000..0fec0f659 --- /dev/null +++ b/Aggregation-count-SQL-es.md @@ -0,0 +1,11 @@ +--- +layout: exercise +topic: Aggregation +title: COUNT +language: SQL +--- + +Escriba una consulta (query) que devuelva el número de individuos identificados por especies en cada año (es decir, cuente la columna `species_id`). +Nombre la columna de conteo "total_abundance" y ordénela cronológicamente. +Incluya el año en la salida y guárdelo como `total_abundance_by_year`. +Solo debe haber un valor para cada año, ya que este es un conteo de los individuos de todas las especies en ese año. \ No newline at end of file diff --git a/Aggregation-sum-Access-es.md b/Aggregation-sum-Access-es.md new file mode 100644 index 000000000..f7c879a07 --- /dev/null +++ b/Aggregation-sum-Access-es.md @@ -0,0 +1,12 @@ +--- +layout: exercise +topic: Aggregation +title: Sum +language: Access +--- + +Escribe una consulta (query) que devuelva el número de individuos de cada especie que han sido +capturados en cada año y la biomasa total de esos individuos (la +suma de la columna wgt). Incluya el año y la identificación de la especie en la salida. +Ordene el resultado cronológicamente por año y luego alfabéticamente por +especies. Guarde como `Mass-Abundance Data`. \ No newline at end of file diff --git a/Aggregation-sum-SQL-es.md b/Aggregation-sum-SQL-es.md new file mode 100644 index 000000000..f6e39c134 --- /dev/null +++ b/Aggregation-sum-SQL-es.md @@ -0,0 +1,13 @@ +--- +layout: exercise +topic: Aggregation +title: SUM +language: SQL +--- + +Escriba una consulta (query) que devuelva el número de individuos de cada especie que han sido +capturados en cada año (`total_abundance`) y la biomasa total, `total_biomass`, de aquellos +individuos (* la suma de `weight` *). Las unidades de biomasa deben estar en +kilogramos. Incluya el `year` y el `species_id` en la salida. Ordenar el resultado +cronológicamente por año y luego alfabéticamente por especie. Guardar como +`mass_abundance_data`. From 2e7db43017ae875ad4c4108e2f579ce4c5514499 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:50:28 -0500 Subject: [PATCH 11/52] Aggregation --- exercises-es/Aggregation-count-Access-es.md | 8 ++++++++ exercises-es/Aggregation-count-SQL-es.md | 11 +++++++++++ exercises-es/Aggregation-sum-Access-es.md | 12 ++++++++++++ exercises-es/Aggregation-sum-SQL-es.md | 13 +++++++++++++ 4 files changed, 44 insertions(+) create mode 100644 exercises-es/Aggregation-count-Access-es.md create mode 100644 exercises-es/Aggregation-count-SQL-es.md create mode 100644 exercises-es/Aggregation-sum-Access-es.md create mode 100644 exercises-es/Aggregation-sum-SQL-es.md diff --git a/exercises-es/Aggregation-count-Access-es.md b/exercises-es/Aggregation-count-Access-es.md new file mode 100644 index 000000000..863ffd4f8 --- /dev/null +++ b/exercises-es/Aggregation-count-Access-es.md @@ -0,0 +1,8 @@ +--- +layout: exercise +topic: Aggregation +title: Count +language: Access] +--- +Escribe una consulta (query) que devuelva el número de todos los individuos (de toas las especies) que han sido capturados en cada año, ordenados cronológicamente. Incluya el año +en la salida. Guárdelo como "Abundancia total por año". \ No newline at end of file diff --git a/exercises-es/Aggregation-count-SQL-es.md b/exercises-es/Aggregation-count-SQL-es.md new file mode 100644 index 000000000..0fec0f659 --- /dev/null +++ b/exercises-es/Aggregation-count-SQL-es.md @@ -0,0 +1,11 @@ +--- +layout: exercise +topic: Aggregation +title: COUNT +language: SQL +--- + +Escriba una consulta (query) que devuelva el número de individuos identificados por especies en cada año (es decir, cuente la columna `species_id`). +Nombre la columna de conteo "total_abundance" y ordénela cronológicamente. +Incluya el año en la salida y guárdelo como `total_abundance_by_year`. +Solo debe haber un valor para cada año, ya que este es un conteo de los individuos de todas las especies en ese año. \ No newline at end of file diff --git a/exercises-es/Aggregation-sum-Access-es.md b/exercises-es/Aggregation-sum-Access-es.md new file mode 100644 index 000000000..f7c879a07 --- /dev/null +++ b/exercises-es/Aggregation-sum-Access-es.md @@ -0,0 +1,12 @@ +--- +layout: exercise +topic: Aggregation +title: Sum +language: Access +--- + +Escribe una consulta (query) que devuelva el número de individuos de cada especie que han sido +capturados en cada año y la biomasa total de esos individuos (la +suma de la columna wgt). Incluya el año y la identificación de la especie en la salida. +Ordene el resultado cronológicamente por año y luego alfabéticamente por +especies. Guarde como `Mass-Abundance Data`. \ No newline at end of file diff --git a/exercises-es/Aggregation-sum-SQL-es.md b/exercises-es/Aggregation-sum-SQL-es.md new file mode 100644 index 000000000..f6e39c134 --- /dev/null +++ b/exercises-es/Aggregation-sum-SQL-es.md @@ -0,0 +1,13 @@ +--- +layout: exercise +topic: Aggregation +title: SUM +language: SQL +--- + +Escriba una consulta (query) que devuelva el número de individuos de cada especie que han sido +capturados en cada año (`total_abundance`) y la biomasa total, `total_biomass`, de aquellos +individuos (* la suma de `weight` *). Las unidades de biomasa deben estar en +kilogramos. Incluya el `year` y el `species_id` en la salida. Ordenar el resultado +cronológicamente por año y luego alfabéticamente por especie. Guardar como +`mass_abundance_data`. From 5907768dc11644c0cff2c68cc76cdaaee6618915 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:51:10 -0500 Subject: [PATCH 12/52] Delete Aggregation-count-Access-es.md --- Aggregation-count-Access-es.md | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 Aggregation-count-Access-es.md diff --git a/Aggregation-count-Access-es.md b/Aggregation-count-Access-es.md deleted file mode 100644 index 863ffd4f8..000000000 --- a/Aggregation-count-Access-es.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: exercise -topic: Aggregation -title: Count -language: Access] ---- -Escribe una consulta (query) que devuelva el número de todos los individuos (de toas las especies) que han sido capturados en cada año, ordenados cronológicamente. Incluya el año -en la salida. Guárdelo como "Abundancia total por año". \ No newline at end of file From 2e923b1a7361a520f1de7949a5351ec9874de037 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:51:45 -0500 Subject: [PATCH 13/52] Delete Aggregation-count-SQL-es.md Added to wrong folder --- Aggregation-count-SQL-es.md | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 Aggregation-count-SQL-es.md diff --git a/Aggregation-count-SQL-es.md b/Aggregation-count-SQL-es.md deleted file mode 100644 index 0fec0f659..000000000 --- a/Aggregation-count-SQL-es.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -layout: exercise -topic: Aggregation -title: COUNT -language: SQL ---- - -Escriba una consulta (query) que devuelva el número de individuos identificados por especies en cada año (es decir, cuente la columna `species_id`). -Nombre la columna de conteo "total_abundance" y ordénela cronológicamente. -Incluya el año en la salida y guárdelo como `total_abundance_by_year`. -Solo debe haber un valor para cada año, ya que este es un conteo de los individuos de todas las especies en ese año. \ No newline at end of file From a3e09679a331cb5d7542de10bc430ccb018f83ae Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:52:02 -0500 Subject: [PATCH 14/52] Delete Aggregation-sum-Access-es.md Added to wrong folder --- Aggregation-sum-Access-es.md | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 Aggregation-sum-Access-es.md diff --git a/Aggregation-sum-Access-es.md b/Aggregation-sum-Access-es.md deleted file mode 100644 index f7c879a07..000000000 --- a/Aggregation-sum-Access-es.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -layout: exercise -topic: Aggregation -title: Sum -language: Access ---- - -Escribe una consulta (query) que devuelva el número de individuos de cada especie que han sido -capturados en cada año y la biomasa total de esos individuos (la -suma de la columna wgt). Incluya el año y la identificación de la especie en la salida. -Ordene el resultado cronológicamente por año y luego alfabéticamente por -especies. Guarde como `Mass-Abundance Data`. \ No newline at end of file From edd286a38ffc43b6b8cb2ceb5f98baf2e59e5d25 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:52:17 -0500 Subject: [PATCH 15/52] Delete Aggregation-sum-SQL-es.md Added to wrong folder --- Aggregation-sum-SQL-es.md | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 Aggregation-sum-SQL-es.md diff --git a/Aggregation-sum-SQL-es.md b/Aggregation-sum-SQL-es.md deleted file mode 100644 index f6e39c134..000000000 --- a/Aggregation-sum-SQL-es.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -layout: exercise -topic: Aggregation -title: SUM -language: SQL ---- - -Escriba una consulta (query) que devuelva el número de individuos de cada especie que han sido -capturados en cada año (`total_abundance`) y la biomasa total, `total_biomass`, de aquellos -individuos (* la suma de `weight` *). Las unidades de biomasa deben estar en -kilogramos. Incluya el `year` y el `species_id` en la salida. Ordenar el resultado -cronológicamente por año y luego alfabéticamente por especie. Guardar como -`mass_abundance_data`. From 7454fb63731f34ce184607a525ed6ea2e4e7f234 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:53:03 -0500 Subject: [PATCH 16/52] Loops --- .../Capstone-cocoli-data-exploration-R-es.md | 64 +++++++++++++++++++ .../Capstone-length-of-floods-R-es.md | 12 ++++ exercises-es/Loops-basic-for-loops-R-es.md | 54 ++++++++++++++++ .../Loops-multi-file-analysis-R-es.md | 22 +++++++ ...Loops-size-estimates-by-name-apply-R-es.md | 23 +++++++ .../Loops-size-estimates-by-name-loop-R-es.md | 23 +++++++ .../Loops-size-estimates-vectorized-R-es.md | 21 ++++++ .../Loops-size-estimates-with-maximum-R-es.md | 9 +++ ...aking-choices-dna-or-rna-iteration-R-es.md | 22 +++++++ .../Scientific-tree-biomass-challenge-R-es.md | 41 ++++++++++++ 10 files changed, 291 insertions(+) create mode 100644 exercises-es/Capstone-cocoli-data-exploration-R-es.md create mode 100644 exercises-es/Capstone-length-of-floods-R-es.md create mode 100644 exercises-es/Loops-basic-for-loops-R-es.md create mode 100644 exercises-es/Loops-multi-file-analysis-R-es.md create mode 100644 exercises-es/Loops-size-estimates-by-name-apply-R-es.md create mode 100644 exercises-es/Loops-size-estimates-by-name-loop-R-es.md create mode 100644 exercises-es/Loops-size-estimates-vectorized-R-es.md create mode 100644 exercises-es/Loops-size-estimates-with-maximum-R-es.md create mode 100644 exercises-es/Making-choices-dna-or-rna-iteration-R-es.md create mode 100644 exercises-es/Scientific-tree-biomass-challenge-R-es.md diff --git a/exercises-es/Capstone-cocoli-data-exploration-R-es.md b/exercises-es/Capstone-cocoli-data-exploration-R-es.md new file mode 100644 index 000000000..a4a827e3c --- /dev/null +++ b/exercises-es/Capstone-cocoli-data-exploration-R-es.md @@ -0,0 +1,64 @@ +--- +layout: exercise +topic: Capstone +title: Cocili Data Exploration +language: R +--- + +Understanding the spatial distribution of ecological phenomena is central to the +study of natural systems. A group of scientists has collected a dataset on the +size, location, and species identify of all of the trees in a 4 ha site in +Panama call "Cocoli". + +Download the [Cocoli Data](http://ctfs.si.edu/webatlas/datasets/cocoli/cocoli.zip) +and explore the following spatial properties. + +1. Make a single plot showing the location of each tree for all species with + more than 100 individuals. Each species should be in its own subplot (i.e., + facet). Label the subplots with the genus and species names, not the species + code. Scale the size of the point by its stem diameter (use `dbh1`) so that + larger trees display as larger points. Have the code save the plot in a + `figures` folder in your project. +2. [Basal area](https://en.wikipedia.org/wiki/Basal_area) is a common measure in + forest management and ecology. It is the sum of the cross-sectional areas of + all of the trees occuring in some area and can be calculated as the sum of + 0.00007854 * DBH^2 over all of the trees. To look at how basal area varies + across the site divide the site into 100 m^2 sample regions (10 x 10 m cells) + and determining the total basal area in each region. I.e., take all of the + trees in a grid cell where x is between 0 and 10 and y is between 0 and 10 + and determine their basal area. Do the same thing for x between 0 and 10 and + y between 10 and 20, and so on. You can do this using two "nested" for loops + to subset the data and calculate the basal area in that region. Make a plot + that shows how the basal area varies spatially. Since the calculation is for + a square region, plot it that way using `geom_tile()` with the center of the + tile at the center of the region where basal area was calculated. Have the + code save the plot in a `figures` folder in your project. + + +Comprender la distribución espacial de los fenómenos ecológicos es fundamental para la +estudio de los sistemas naturales. Un grupo de científicos ha recopilado datos sobre el tamaño, ubicación e identificación de especies de todos los árboles en un sitio de 4 hectareas en "Cocoli", +Panamá. + +Descargue los [Datos de Cocoli] [Cocoli Data](http://ctfs.si.edu/webatlas/datasets/cocoli/cocoli.zip) +and explore the following spatial properties. + +1. Haga una sola gráfica que muestre la ubicación de cada árbol para todas las especies con + más de 100 individuos. Cada especie debe estar en su propia subgráfica (subplot) (es decir, + faceta). Etiquete las subgráfica (subplots) con los nombres de género y especie, no la especie + código. El tamaño del punto debe ser determinado por el diámetro de tallo (use `dbh1`) para que + los árboles más grandes se muestran como puntos más grandes. Haga que el código guarde las gráficas en un carpeta `figures` en su proyecto. + +2. [Basal area](https://en.wikipedia.org/wiki/Basal_area) es una medida común en el + manejo y conservación de bosques y ecología. Es la suma de las áreas de las secciones + transversales (cross-sectional areas) de + todos los árboles que se encuentran en un área y se puede calcular como la suma de + 0.00007854 * DAP^2 sobre todos los árboles. Para ver cómo varía el área basal + en todo el sitio, divida el sitio en regiones de muestra de 100 m^2 (celdas de 10 x 10 m) + y determine el área basal total en cada región. Es decir, tome todos los + árboles en una celda de cuadrícula donde X está entre: 0 y 10 e Y: entre 0 y 10 + y determine su área basal. Haga lo mismo para X entre: 0 y 10 y para + Y: entre 10 y 20, y así sucesivamente. Puede hacer esto usando dos bucles for (for loops) "anidados" + para crear un subconjunto de los datos y calcular el área basal en esa región. Haga una gráfica + que muestre cómo el área basal varía espacialmente. Como el cálculo es para + una región cuadrada, trácela de esa manera usando `geom_tile()` con el centro de la + mosaico en el centro de la región donde se calculó el área basal. Guarde la gráfica en una carpeta `figures` en su proyecto. \ No newline at end of file diff --git a/exercises-es/Capstone-length-of-floods-R-es.md b/exercises-es/Capstone-length-of-floods-R-es.md new file mode 100644 index 000000000..24d5af623 --- /dev/null +++ b/exercises-es/Capstone-length-of-floods-R-es.md @@ -0,0 +1,12 @@ +--- +layout: exercise +topic: Capstone +title: Length of Floods +language: R +--- + +Usted interesado en estudiar el efecto del tiempo y la duración de los pequeños +eventos de inundación a escala en un ecosistema. Para hacer esto, debe determinar cuándo se producen las inundaciones y su duración según los datos de la estación de aforo. + +Descargar el +[stream guage data for USGS stream gauge site 02236000]({{ site.baseurl }}/data/st_johns_stream_data.csv) de el río St. Johns en Florida. Encuentre las partes continuas de las series de tiempo donde el nivel de la corriente está por encima del umbral de inundación de 2.26 pies y almacene la información sobre la fecha de inicio y la duración de cada inundación en un marco de datos. \ No newline at end of file diff --git a/exercises-es/Loops-basic-for-loops-R-es.md b/exercises-es/Loops-basic-for-loops-R-es.md new file mode 100644 index 000000000..d1caeb464 --- /dev/null +++ b/exercises-es/Loops-basic-for-loops-R-es.md @@ -0,0 +1,54 @@ +--- +layout: exercise +topic: Loops +title: Basic For Loops +language: R +--- +1\. El siguiente código imprime los números del 1 al 5 una línea a la vez. Modifíquelo para imprimir los números del 2 al 16. + +```r +for (i in 1:5){ + print(i) +} +``` + +2\. El siguiente código imprime los números del 1 al 5 una línea a la vez. Modifíquelo para imprimir cada uno de estos números multiplicado por 3. + +```r +for (i in 1:5){ + print(i) +} +``` + +3\. Complete el código a continuación para que imprima el nombre de cada ave una línea a la vez. + +```r +birds = c('robin', 'woodpecker', 'blue jay', 'sparrow') +for (i in 1:length(_________)){ + print(birds[__]) +} +``` + +4\. Complete el código a continuación para que almacene un área para cada radio. + +```r +radius <- c(1.3, 2.1, 3.5) +areas <- vector(_____ = "numeric", length = ______) +for (__ in 1:length(________)){ + areas[__] <- pi * radius[i] ^ 2 +} +areas +``` + + +5\. Complete el siguiente código para calcular un área para cada par de `lengths` y `widths`, almacene las áreas en un vector y, una vez calculadas, imprímalas: + +```r +lengths = c(1.1, 2.2, 1.6) +widths = c(3.5, 2.4, 2.8) +areas <- vector(length = __________) +for (i in _____) { + areas[__] <- lengths[__] * widths[__] +} +areas +``` diff --git a/exercises-es/Loops-multi-file-analysis-R-es.md b/exercises-es/Loops-multi-file-analysis-R-es.md new file mode 100644 index 000000000..a7712f6c8 --- /dev/null +++ b/exercises-es/Loops-multi-file-analysis-R-es.md @@ -0,0 +1,22 @@ +--- +layout: exercise +topic: Loops +title: Multi-file Analysis +language: R +--- +Tiene collares satelitales en varios individuos y desea poder ver rápidamente todos sus movimientos recientes de manera simultánea. +Los datos son publicados diariamente en [url as a zip file]({{ site.baseurl }}/data/individual_collar_data.zip) y contienen un archivo csv para cada individuo: [{{ site.url }}/data/individual_collar_data.zip]({{ site.baseurl }}/data/individual_collar_data.zip) +Comience por: + +* Descargar el archivo zip usando `download.file()` +* Descomprimir el archivo usando `unzip()` +* Obtener una lista de todos los archivos que contengan en su nombre el patrón `"collar-data-.*.txt"` + +1. Use un bucle (loop) para cargar cada uno de estos archivos en R y haga un diagrama de líneas (usando `geom_path()`) para cada archivo con `long` en el eje `x` y `lat` en el eje `y`. +Las gráficas, como otros tipos de salida (outputs), no se muestran dentro de el bucle (loop) a menos que se escriba explícitamente, por lo que debe colocar el comando `ggplot()` dentro de una declaración `print()`. +Incluya el nombre del archivo en la gráfica como título usando `labs()`. + +2. Agregue código al bucle (loop) para calcular la latitud mínima y máxima en el archivo y almacene estos valores, junto con el nombre del archivo, en un marco de datos. +Muestra el marco de datos como salida. + +Si está interesado en ver otra aplicación de bucles for (for loops), [check out the code]({{ site.baseurl }}/code/Data-simulation-for-loops-multi-file-analysis) utilizado para simular los datos de este ejercicio usando bucles for. diff --git a/exercises-es/Loops-size-estimates-by-name-apply-R-es.md b/exercises-es/Loops-size-estimates-by-name-apply-R-es.md new file mode 100644 index 000000000..ffb920eb6 --- /dev/null +++ b/exercises-es/Loops-size-estimates-by-name-apply-R-es.md @@ -0,0 +1,23 @@ +--- +layout: exercise +topic: Loops +title: Size Estimates By Name Apply +language: R +--- +Esta es una continuación de [Size Estimates by Name]({{ site.baseurl }}/exercises/Making-choices-size-estimates-by-name-R). + +Descargue los [data on dinosaur lengths with species names]({{ site.baseurl }}/data/dinosaur_lengths.csv) e impórtelos usando `read.csv()`. + +Escriba una función `get_mass_from_length_by_name()` que use la ecuación `mass <- a * length^b` para estimar el tamaño de un dinosaurio a partir de su longitud. Esta función debe tomar dos argumentos, la `length` y el nombre del grupo de dinosaurios. Dentro de esta función, use las declaraciones `if`/`else if`/`else` para verificar si el nombre es uno de los siguientes valores y, de ser así, establezca `a` y `b` en los valores apropiados. + +* *Stegosauria*: `a = 10.95` and `b = 2.64` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* *Theropoda*: `a = 0.73` and `b = 3.63` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* *Sauropoda*: `a = 214.44` and `b = 1.46` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). + +Si el nombre no es ninguno de estos valores, defina `a = NA` y `b = NA`. + +1. Usa esta función y `mapply()` para calcular la masa estimada de cada dinosaurio. Deberá pasar los datos a `mapply()` como vectores o columnas individuales, no como el marco de datos completo. + +2. Usando `dplyr`, agregue una nueva columna `masses` al marco de datos (usando `rowwise()`, `mutate()` y la función que ha creado) e imprima el resultado en la consola. + +3. Usando `ggplot`, haga un histograma de masas de dinosaurios con una subplot para cada especie (usando `facet_wrap()`). diff --git a/exercises-es/Loops-size-estimates-by-name-loop-R-es.md b/exercises-es/Loops-size-estimates-by-name-loop-R-es.md new file mode 100644 index 000000000..7a019b8d1 --- /dev/null +++ b/exercises-es/Loops-size-estimates-by-name-loop-R-es.md @@ -0,0 +1,23 @@ +--- +layout: exercise +topic: Loops +title: Size Estimates By Name Loop +language: R +--- +Esta es una continuación de [Size Estimates by Name]({{ site.baseurl }}/exercises/Making-choices-size-estimates-by-name-R). + + +Descargue e importe [data on dinosaur lengths with species names]({{ site.baseurl }}/data/dinosaur_lengths.csv). + +Escriba una función `mass_from_length()` que use la ecuación `mass <- a * length^b` para estimar el tamaño de un dinosaurio a partir de su longitud. +Esta función debe tomar dos argumentos, `length` y `species`. Para cada una de las siguientes entradas para "species", utilice los valores dados de `a` y `b` para calcular lo siguiente: + +* Para (for) `Stegosauria`: `a = 10.95` y `b = 2.64` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* Para (for) `Theropoda`: `a = 0.73` y `b = 3.63` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* Para (for) `Sauropoda`: `a` = `214.44` and `b = 1.46` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* Para (for) cualquier otro valor de `species`: `a = 25.37` y `b = 2.49`. + +1. Utilice esta función y un bucle (loop) for para calcular la masa estimada de cada dinosaurio, almacene las masas en un vector y, luego de completar todos los cálculos, muestre los primeros elementos del vector utilizando `head()`. +2. Vuelva a agregar los resultados en el vector al marco de datos original. Muestra las primeras filas del marco de datos usando `head()`. +3. Calcule la masa media de cada 'species' utilizando 'dplyr'. + diff --git a/exercises-es/Loops-size-estimates-vectorized-R-es.md b/exercises-es/Loops-size-estimates-vectorized-R-es.md new file mode 100644 index 000000000..5ceed98ff --- /dev/null +++ b/exercises-es/Loops-size-estimates-vectorized-R-es.md @@ -0,0 +1,21 @@ +--- +layout: exercise +topic: Loops +title: Size Estimates Vectorized +language: R +--- + +Esta es una continuación de [Usar y modificar]({{ site.baseurl }}/exercises/Functions-use-and-modify-R). + +1. Escriba una función llamada `mass_from_length_theropoda()` que tome `length` como argumento para obtener una estimación de los valores de masa del dinosaurio *Theropoda*. Use la ecuación `masa <- 0.73 * length^3.63`. Copie los siguientes datos en R y pase el vector completo a su función para calcular la masa estimada de cada dinosaurio. + +`Theropoda_lengths <- c (17,8013631070471, 20,3764452071665, 14,0743486294308, 25,65782386974, 26,0952008049675, 20,3111541103134, 17,5663244372533, 11,2563431277577, 20,081903202614, 18,6071626441984, 18,0991894513166, 23,0659685685892, 20,5798853467837, 25,6179254233558, 24,3714331573996, 26,2847248252537, 25,4753783544473, 20,4642089867304, 16,0738256364701, 20,3494171706583, 19,854399305869, 17,7889814608919, 14,8016421998303, 19,6840911485379, 19,4685885050906, 24,4807784966691, 13,3359960054899, 21,5065994598917, 18,4640304608411, 19,5861532398676, 27,084751999756, 18,9609366301798, 22,4829168046521, 11,7325716149514, 18,3758846100456, 15,537504851634, 13,4848751773738, 7,68561192214935, 25,5963348603783, 16,588285389794) ` + +2. Cree una nueva versión de la función llamada `mass_from_length()` que use la ecuación `mass <- 0.73 * length^3.63` y tome `length`, `a` y `b` como argumentos. En los argumentos de la función, establezca los valores predeterminados para `a` en `0.73` y `b` en `3.63`. Si ejecuta esta función solo con los datos de longitud de la Parte 1, debería obtener el mismo resultado que la Parte 1. Copie los datos a continuación en R y llame a su función usando el vector de longitudes de la Parte 1 (arriba) y estos vectores de valores de `a` y `b` para estimar la masa de los dinosaurios usando diferentes valores de `a` y `b`. + + +`a_Values ​​<- C (0.759, 0.751, 0.74, 0.746, 0.759, 0.746, 0.759, 0.751, 0.749, 0.751, 0.738, 0.768, 0.736, 0.749, 0.746, 0.744, 0.746, 0.744, 0.749, 0.751, 0.749, 0.751, 0.749, 0.751, 0.744, 0.751, 0.744, 0.754, 0.744, 0.754, 0.774, 0.754, 0.774, 0.751, 0.763, 0.749, 0.763, 0.749, 0,741, 0,754, 0,746, 0,755, 0,764, 0,758, 0,76, 0,748, 0,745, 0,756, 0,739, 0,733, 0,757, 0,747, 0,741, 0,752, 0,752, 0,748)` + +`b_values ​​<- c (3.627, 3.633, 3.626, 3.633, 3.627, 3.633, 3.627, 3.629, 3.632, 3.628, 3.633, 3.627, 3.621, 3.63, 3.631, 3.632, 3.628, 3.626, 3.639, 3.626, 3.635, 3.629, 3.635, 3.629, 3.642, 3.632, 3.633, 3.629, 3.62, 3.619, 3.638, 3.627, 3.621, 3.628, 3.628, 3.635, 3.624, 3.621, 3.621, 3.632, 3.627, 3.624, 3.634, 3.621)` + +3. Cree un marco de datos para estos datos usando `dino_data <- data.frame(theropoda_lengths, a_values, b_values)`. Use `dplyr` para agregar una nueva columna `masses` a este marco de datos (usando `mutate()` y su función) e imprima el resultado en la consola. diff --git a/exercises-es/Loops-size-estimates-with-maximum-R-es.md b/exercises-es/Loops-size-estimates-with-maximum-R-es.md new file mode 100644 index 000000000..f3aff9f98 --- /dev/null +++ b/exercises-es/Loops-size-estimates-with-maximum-R-es.md @@ -0,0 +1,9 @@ +--- +layout: exercise +topic: Loops +title: Size Estimates With Maximum +language: R +--- +Esta es una continuación de la Parte 1 [Size Estimates Vectorized]({{ site.baseurl }}/exercises/Loops-size-estimates-vectorized-R). + +Cree una nueva versión de la función `mass_from_length_theropoda()` de la Parte 1 de [Size Estimates Vectorized]({{ site.baseurl }}/exercises/Loops-size-estimates-vectorized-R) llamada `mass_from_length_max()`. Esta función solo debe calcular una masa si el valor de `length` pasado a la función es menor que 20. Si `length` es mayor que 20, debe devuelver `NA` en su lugar. Use `sapply()` y esta nueva función para estimar la masa de los datos de `theropoda_lengths` de [Size Estimates Vectorized]({{ site.baseurl }}/exercises/Loops-size-estimates-vectorized-R). \ No newline at end of file diff --git a/exercises-es/Making-choices-dna-or-rna-iteration-R-es.md b/exercises-es/Making-choices-dna-or-rna-iteration-R-es.md new file mode 100644 index 000000000..8640bdd62 --- /dev/null +++ b/exercises-es/Making-choices-dna-or-rna-iteration-R-es.md @@ -0,0 +1,22 @@ +--- +layout: exercise +topic: Making Choices +title: DNA or RNA Iteration +language: R +--- +Esta es una continuación de [DNA or RNA]({{ site.baseurl }}/exercises/Making-choices-dna-or-rna-R). +Escriba una función, `dna_or_rna(sequence)`, que determine si una secuencia +de pares de bases es ADN, ARN, o si no es posible saberlo dada la +secuencia dada. Ya que lo único lo que la función sabrá sobre el material es la +secuencia, la única forma de diferencias entre el ADN y el ARN es que +el ARN tiene la base uracilo (`"u"`) en lugar de la base timina (`"t"`). Haga que la función devuelva una de las tres salidas: `"DNA"`, `"RNA"` o `"UNKNOWN"`. + +1. Utilice la función y un bucle `for` (for loop) para imprimir el tipo de secuencia en la siguiente lista. +2. Use su función y `sapply` para imprimir el tipo de secuencia en la siguiente lista. + +``` +sequences = c("ttgaatgccttacaactgatcattacacaggcggcatgaagcaaaaatatactgtgaaccaatgcaggcg", "gauuauuccccacaaagggagugggauuaggagcugcaucauuuacaagagcagaauguuucaaaugcau", "gaaagcaagaaaaggcaggcgaggaagggaagaagggggggaaacc", "guuuccuacaguauuugaugagaaugagaguuuacuccuggaagauaauauuagaauguuuacaacugcaccugaucagguggauaaggaagaugaagacu", "gauaaggaagaugaagacuuucaggaaucuaauaaaaugcacuccaugaauggauucauguaugggaaucagccggguc") +``` + + +*Opcional: para un desafío adicional, haga que su función funcione con letras mayusculas y minúsculas, o incluso cadenas con que incluyan ambas* diff --git a/exercises-es/Scientific-tree-biomass-challenge-R-es.md b/exercises-es/Scientific-tree-biomass-challenge-R-es.md new file mode 100644 index 000000000..c0fac73b7 --- /dev/null +++ b/exercises-es/Scientific-tree-biomass-challenge-R-es.md @@ -0,0 +1,41 @@ +--- +layout: exercise +topic: Scientific +title: Tree Biomass Challenge +language: R +--- +Estimar de la cantidad total de biomasa (*la masa total de todos los individuos*) +en los bosques es importante para comprender el presupuesto mundial de carbono y cómo el planeta tierra responderá a los aumentos de emisiones de dióxido de carbono + +Normalmente no medimos la masa de un árbol, pero tomamos una medida de la +diámetro o circunferencia del tronco y luego estimamos su masa. + +Hay muchas ecuaciones para estimar la masa de un árbol a partir de su diámetro, +pero una buena opción es la ecuación: + +Masa = 0.124 * Diámetro2.53 + +donde `Mass` se mide en kg de biomasa seca sobre suelo seca y +`Diámetro` está en cm + +1\. Vamos a estimar la biomasa total de árboles en un area de 96 +hectáreas en las Ghats occidentales en la India. + + * [Download the data]({{ site.baseurl }}/data/ramesh2010-macroplots.csv) y + cargue los datos en R. + * Escriba una función que tome un vector de diámetros de árboles como argumento y + devuelve un vector de masas de árboles. + * Cree un pipeline `dplyr` que + * Agregue una nueva columna (usando `mutate` y la función que escribió) que contenga masas + calculadas a partir de los diámetros + * Agrupe el marco de datos en especies usando la columna `SpCode` + * Y luego calcule la biomasa (es decir, `sum` de las masas) para cada especie + (usando `summarize`) + * Almacene el resultado como un marco de datos + * Muestre el marco de datos resultante + +2\. Haga un histograma de los valores de biomasa de las especies que acaba de calcular. + + * Use 10 intervalos (bins) en el histograma (usando el argumento `bins`) + * Use una escala log10 para el eje x (usando `scale_x_log10`) + * Cambie la etiqueta del eje x a `Biomass` y la etiqueta del eje y a `Number of Species` (usando `labs`) \ No newline at end of file From 995a95bdd818a82fd23269854b598399f8a41207 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:53:45 -0500 Subject: [PATCH 17/52] Making Choices --- Making-choices-basic-if-statements-R-es.md | 47 +++++++++++++++++++ Making-choices-choice-operators-R-es.md | 31 ++++++++++++ Making-choices-dna-or-rna-R-es.md | 29 ++++++++++++ Making-choices-load-or-download-file-R-es.md | 23 +++++++++ Making-choices-size-estimates-by-name-R-es.md | 39 +++++++++++++++ ...-choices-unit-conversion-challenge-R-es.md | 32 +++++++++++++ 6 files changed, 201 insertions(+) create mode 100644 Making-choices-basic-if-statements-R-es.md create mode 100644 Making-choices-choice-operators-R-es.md create mode 100644 Making-choices-dna-or-rna-R-es.md create mode 100644 Making-choices-load-or-download-file-R-es.md create mode 100644 Making-choices-size-estimates-by-name-R-es.md create mode 100644 Making-choices-unit-conversion-challenge-R-es.md diff --git a/Making-choices-basic-if-statements-R-es.md b/Making-choices-basic-if-statements-R-es.md new file mode 100644 index 000000000..0b0c51022 --- /dev/null +++ b/Making-choices-basic-if-statements-R-es.md @@ -0,0 +1,47 @@ +--- +layout: exercise +topic: Making Choices +title: Basic If Statements +language: R +--- +1\. Complete (es decir, copie en su código y modifiquelo) la siguiente declaración `if` + de manera que que si `age_class ` es igual a "sapling", el valor de Y sea: `y <- 10`. + +```r +age_class = "sapling" +if (){ + +} +y +``` + +2\. Complete la siguiente declaración `if` de manera que si `age_class ` es igual a + "sapling" el valor de Y sea: `y <- 10` y si `age_class ` es igual a "seedling" + el valor de Y sea: `y <- 5`. + +```r +age_class = "seedling" +if (){ + +} +y +``` + +3\. Complete la siguiente declaración `if` de manera que si `age_class ` es igual a + "sapling" establece `y <- 10` y si `age_class ` es igual a "seedling" + el valor de Y sea: `y <- 5` y si `clase_de_edad` es otra cosa, entonces el valor de Y sea: + `y <- 0`. + + +```r +age_class = "adult" +if (){ + +} +y +``` + +4\. Convierta su declaración condicional de (3) en una función que tome + `age_class ` como argumento y devuelva `y`. Llame esta función 5 veces, una vez + con cada uno de los siguientes valores de `age_class `: "sapling", "seedling", + "adult", "mature", "established". diff --git a/Making-choices-choice-operators-R-es.md b/Making-choices-choice-operators-R-es.md new file mode 100644 index 000000000..51bc76a03 --- /dev/null +++ b/Making-choices-choice-operators-R-es.md @@ -0,0 +1,31 @@ +--- +layout: exercise +topic: Making Choices +title: Choice Operators +language: R +--- +Cree las siguientes variables. + +``` +w <- 10.2 +x <- 1.3 +y <- 2.8 +z <- 17.5 +colors <- c("red", "blue", "green") +masses <- c(45.2, 36.1, 27.8, 81.6, 42.4) +dna1 <- "attattaggaccaca" +dna2 <- "attattaggaacaca" +``` + +Úselas para imprimir si las siguientes premisas son "TRUE" o "FALSE". + +1. `w` es mayor que 10 +2. `"green"` está en `colors` +3. `x` es mayor que `y` +4. Cada valor en `mass` es mayor que 40. +5. 2 * `x` + 0.2 es igual a `y` +6. `dna1` es lo mismo que `dna2` +7. `dna1` no es lo mismo que `dna2` +8. `w` es mayor que `x`, o `y` es mayor que `z` +9. 'x' por 'w' está entre 13.2 y 13.5 +10. Cada masa en `mass` está entre 30 y 50. diff --git a/Making-choices-dna-or-rna-R-es.md b/Making-choices-dna-or-rna-R-es.md new file mode 100644 index 000000000..63bcc8f5d --- /dev/null +++ b/Making-choices-dna-or-rna-R-es.md @@ -0,0 +1,29 @@ +--- +layout: exercise +topic: Making Choices +title: DNA or RNA +language: R +--- + +Escriba una función que determine si una secuencia de pares de bases es ADN, ARN o si +no es posible decir dada la secuencia proporcionada. El ARN tiene la base Uracilo +(`"u"`) en lugar de la base Timina (`"t"`), por lo que las secuencias con u son ARN, +las secuencias con t son ADN, y las secuencias sin ninguna son desconocidas. + +Puede verificar si una cadena contiene un carácter (o una subcadena más larga) en R +usando `grepl(subcadena, cadena)`, entonces `grepl("u", secuencia)` verificará si el +cadena en la variable `secuencia` tiene la base `u`. + +Nombre la función `dna_or_rna()`, la misma recibir `sequence` como argumento. +Haga que la función devuelva una de las tres salidas: `"DNA"`, `"RNA"` o `"UNKNOWN"`. +Llame a la función en cada una de las siguientes secuencias. + + +``` +seq1 <- "ttgaatgccttacaactgatcattacacaggcggcatgaagcaaaaatatactgtgaaccaatgcaggcg" +seq2 <- "gauuauuccccacaaagggagugggauuaggagcugcaucauuuacaagagcagaauguuucaaaugcau" +seq3 <- "gaaagcaagaaaaggcaggcgaggaagggaagaagggggggaaacc" +``` + +*Reto (**opcional**)*: Descubre cómo hacer que tu función funcione con ambos +letras mayúsculas y minúsculas, o incluso cadenas con mayúsculas mixtas. diff --git a/Making-choices-load-or-download-file-R-es.md b/Making-choices-load-or-download-file-R-es.md new file mode 100644 index 000000000..cd33cb843 --- /dev/null +++ b/Making-choices-load-or-download-file-R-es.md @@ -0,0 +1,23 @@ +--- +layout: exercise +topic: Making Choices +title: Load or Download File +language: R +--- +Cuando los archivos de datos son de gran tamaño, puede ser útil descargar el archivo solo si no ha sido descargado. Una forma de hacer esto es verificar si el nombre del archivo existe en su directorio de trabajo. Si existe, cárguelo, si no, descárguelo. Puede usar la función `list.files()` para obtener una lista de archivos y directorios en el +directorio de trabajo y la función `download.file(url, filename)` para descargar +el archivo de una `url` a un `filename` específico. + +1. Escriba una declaración condicional que verifique si `surveys.csv` existe en el + directorio de trabajo, si no es así, descárguelo de + usando `download.file()`, y finalmente + carga el archivo en un marco de datos y muestra las primeras filas usando `head()` + función. + +2. Haga una versión de esta declaración condicional que sea una función, donde el + el nombre del archivo sea el primer argumento y el enlace para descargar el archivo + sea el segundo argumento. La función debe devolver el marco de datos resultante. + Agregue algo de documentación en la parte superior de la función que describa lo que hace. + Llame a esta función utilizando "species.csv" como nombre de archivo y + como enlace. Imprima las primeras + filas del marco de datos resultante usando `head()`. \ No newline at end of file diff --git a/Making-choices-size-estimates-by-name-R-es.md b/Making-choices-size-estimates-by-name-R-es.md new file mode 100644 index 000000000..1d5710e0e --- /dev/null +++ b/Making-choices-size-estimates-by-name-R-es.md @@ -0,0 +1,39 @@ +--- +layout: exercise +topic: Making Choices +title: Size Estimates by Name +language: R +--- +Esta es una continuación de [Use and Modify]({{ site.baseurl }}/exercises/Functions-use-and-modify-R). + +Para que sea aún más fácil trabajar con las funciones de estimación del tamaño de los dinosaurios, +usted ha decidido crear una función que le permita especificar el nombre del grupo de dinosaurios a que le desea estimar el tamaño y luego hacer que la función elija automáticamente los parámetros correctos. + +Cree una nueva función `get_mass_from_length_by_name()` que tome dos argumentos, +la `length` y el nombre del grupo de dinosaurios. Dentro de esta función use +declaraciones `if`/`else if`/`else` para verificar si el nombre es uno de los +siguientes valores y, si es así, establezca `a` y `b` en los valores apropiados. + +* *Estegosauria*: `a` = `10,95` y `b` = `2,64` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* *Theropoda*: `a` = `0.73` y `b` = `3.63` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* *Sauropoda*: `a` = `214.44` y `b` = `1.46` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). + +Si el nombre no es ninguno de estos valores, establezca `a` y `b` en `NA`. + +Una vez que la función haya asignado `a` y `b`, debe ejecutar `get_mass_from_length()` +con los valores adecuados y devolver la masa estimada. + +Ejecute la función para: + +1. Un *Stegosauria* de 10 metros de largo. +2. Un *Theropoda* que mide 8 metros de largo. +3. Un *Sauropoda* de 12 metros de largo. +4. Un *Ankylosauria* de 13 metros de largo. + +*Reto (**opcional**)*: Si el nombre no es uno de los valores que tienen `a` y `b` imprima un mensaje de que no sabe cómo convertir ese grupo que incluya el nombre de ese grupo en un mensaje como "No known estimation for Ankylosauria". (La función `paste()` será útil aquí). Hacer esto con éxito modificará su respuesta a (4), lo cual está bien + +*Reto (**opcional**)*: Cambie su función para que use dos +valores de `a` y `b` para *Stegosauria*. Cuando *Stegosauria* sea mayor que 8 +metros de largo su funciona debe usar la ecuación anterior. Cuando tenga menos de 8 metros de largo su función debe usar `a` = +`8.5` y `b` = `2.8`. Ejecute la función para un *Stegosauria* de 6 metros +longitud. \ No newline at end of file diff --git a/Making-choices-unit-conversion-challenge-R-es.md b/Making-choices-unit-conversion-challenge-R-es.md new file mode 100644 index 000000000..9870fe0a7 --- /dev/null +++ b/Making-choices-unit-conversion-challenge-R-es.md @@ -0,0 +1,32 @@ +--- +layout: exercise +topic: Making Choices +title: Unit Conversion Challenge +language: R +--- +Las medidas de la cantidad de energía utilizada por los procesos biológicos son críticas para +comprender muchos aspectos de la biología, desde la fisiología celular hasta el ecosistema +ecología. Hay muchas unidades diferentes para el uso de la energía y su utilización varía según los métodos, las áreas de investigación y los grupos de laboratorio. Escriba la función: +`convert_energy_units(energy_value, input_unit, output_unit)` para convertir unidades +entre los siguientes valores de energía: julios (J), kilojulios (KJ), calorías (CAL), +y kilocalorías (KCAL; *esta es la unidad utilizada para etiquetar la cantidad de energía +contenidos en los alimentos*). Un kilojulio son 1000 julios, una caloría son 4.1868 julios, una kilocaloría es 4186.8 julios. Un ejemplo de una llamada a esta función se vería así: + +``` +energy_in_cal <- 200 +energy_in_j <- convert_energy_units(energy_in_cal, "CAL", "J") +``` + +Haga que esta función sea más eficiente al vincular declaraciones `if else`. Si el +unidad de entrada o la unidad de salida no coinciden con los cinco tipos indicados anteriormente, incluya la +función print con el mensaje- "Sorry, I don't know how to convert " que incluya el nombre de la unidad +previsto. *En lugar de escribir una conversión individual entre cada una de las unidades de medida (lo que requeriría 12 declaraciones if) podría optar por +convertir todas las unidades de entrada a una escala común y luego convertir a partir de eso +escala común a las unidades de salida. Este enfoque es especialmente útil ya que +Es posible que deba agregar nuevas unidades más tarde y esto será mucho más fácil usando este método.* + +Use su función para responder las siguientes preguntas: + +1. ¿Qué cantidad de energía metabólica diaria utilizada por un ser humano (~2500 KCAL) en julios? +2. ¿Cuántas energía adicional utiliza una foca común comparada con un humano? La foca común utiliza ~52,500 KJ/día ([Nagy et al. 1999](http://www.annualreviews.org/doi/abs/10.1146/annurev.nutr.19.1.247)). Use la energía metabólica diaria de un humano diario mencionada en la parte 1. +3. ¿Cuántos ergios (ERG) hay en una kilocaloría? *Dado que no incluimos la conversión de erg, esto debería devolver nuestro mensaje 'no sé cómo convertir'* \ No newline at end of file From 566635d7051b8fddf4e69f06cc3bc8e00eb44fa0 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:54:25 -0500 Subject: [PATCH 18/52] Review+Reproducibility --- exercises-es/Portal-data-review-R-es.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 exercises-es/Portal-data-review-R-es.md diff --git a/exercises-es/Portal-data-review-R-es.md b/exercises-es/Portal-data-review-R-es.md new file mode 100644 index 000000000..5f3b32af7 --- /dev/null +++ b/exercises-es/Portal-data-review-R-es.md @@ -0,0 +1,21 @@ +--- +layout: exercise +topic: dplyr +title: Portal Data Review +language: R +--- +Si `surveys.csv`, `species.csv` y `plots.csv` no están disponibles en su espacio de trabajo, descárguelos: + +* [`surveys.csv`](https://ndownloader.figshare.com/files/2292172) +* [`species.csv`](https://ndownloader.figshare.com/files/3299483) +* [`plots.csv`](https://ndownloader.figshare.com/files/3299474) + +Cárguelos en R usando `read.csv()`. + +1. Cree un marco de datos con solo datos para `species_id` `DO`, con las columnas `year`, `month`, `day`, `species_id` y `weight`. +2. Cree un marco de datos con solo datos para las de especies con ID `PP` y `PB` y para los años a partir del 1995, con las columnas `year`, `species_id` y `hindfoot_length` sin valores nulos para `hindfoot_length` . +3. Cree un marco de datos con la `hindfoot_length` promedio para cada `species_id` en cada `year` sin valores nulos. +4. Cree un marco de datos con `year`, `genus`, `species`, `weight` and `plot_type` para todos los casos en los que `genus` es `"Dipodomys"`. +5. Haga una gráfica de dispersión con `weight` en el eje x y `hindfoot_length` en el eje y. Use una escala `log10` en el eje x. Coloree los puntos por `species_id`. Rotule con buenos nombres los ejes. +6. Haga un histograma de pesos con una sub gráfica separada para cada `species_id`. No incluya especies sin pesos. Establezca el argumento `scales` en `"free_y"` para que los ejes Y puedan variar. Rotule con buenos nombres los ejes. +7. (Desafío) Haga una gráfica con histogramas de los pesos de tres especies, `PP`, `PB` y `DM`, coloreada por `species_id`, con una faceta diferente (subplot) para cada una de los tres `plot_type`'s: `Control`, `Long-term Krat Exclosure`, and `Short-term Krat Exclosure`. Incluya buenas etiquetas de eje y un título para la gráfica. Exporte su gráfica a un archivo `png`. \ No newline at end of file From 454499975bb0229dfdf370364f686690f170de79 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:55:14 -0500 Subject: [PATCH 19/52] Tidy Data --- exercises-es/Tidy-data-clean-up-SQL-es.md | 13 ++++++++++++ .../Tidy-data-improving-messy-data-SQL-es.md | 21 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 exercises-es/Tidy-data-clean-up-SQL-es.md create mode 100644 exercises-es/Tidy-data-improving-messy-data-SQL-es.md diff --git a/exercises-es/Tidy-data-clean-up-SQL-es.md b/exercises-es/Tidy-data-clean-up-SQL-es.md new file mode 100644 index 000000000..d2758ba6b --- /dev/null +++ b/exercises-es/Tidy-data-clean-up-SQL-es.md @@ -0,0 +1,13 @@ +--- +layout: exercise +topic: Tidy Data +title: Clean Up Untidy Data +language: SQL +--- +Muchos datos reales no están muy ordenados, principalmente porque a la mayoría de los científicos no se les enseña a estructurar sus datos de una manera que sea fácil de analizar. + + +[Download an untidy version](https://ndownloader.figshare.com/files/24469424), +estos son algunos de los datos desordenados del Proyecto Portal, que incluye información sobre el sitio, fecha, identificación de especies, peso y parcela de muestreo (dentro de la area de estudio) para algunos pequeños mamíferos. + +Convierta los datos a un formato más ordenado. \ No newline at end of file diff --git a/exercises-es/Tidy-data-improving-messy-data-SQL-es.md b/exercises-es/Tidy-data-improving-messy-data-SQL-es.md new file mode 100644 index 000000000..beb451136 --- /dev/null +++ b/exercises-es/Tidy-data-improving-messy-data-SQL-es.md @@ -0,0 +1,21 @@ +--- +layout: exercise +topic: Tidy Data +title: Improving Messy Data +language: SQL +--- +Muchos datos reales no están muy ordenados, principalmente porque a la mayoría de los científicos no se les enseña a estructurar sus datos de una manera que sea fácil de analizar. + + +[Download an untidy version](https://ndownloader.figshare.com/files/24469424), +estos son algunos de los datos desordenados del Proyecto Portal, que incluye información sobre el sitio, fecha,identificación de especies, peso y parcela de muestreo (dentro de la area de estudio) para algunos pequeños mamíferos. + +Piense en lo que se podría mejorar de estos datos y escriba las respuestas a las siguientes preguntas: + +1. Describa cinco cosas sobre estos datos que no están ordenadas (tidy) y cómo podría + solucionar cada uno de esos problemas. + +2. ¿Se podrían importar fácilmente estos datos a un lenguaje de programación o a un + base de datos en su forma actual? + +3. ¿Cree que es una buena idea ingresar los datos de esta manera y luego limpiarlos más tarde, o seria mejor tener una buena estructura de datos para el análisis desde el momento en que se ingresan los datos? ¿Por qué? \ No newline at end of file From 6f87d64228b26ad36ef5de600b19e6cd0f9a58f2 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:55:33 -0500 Subject: [PATCH 20/52] QAQC --- Qaqc-data-entry-validation-in-excel-SQL-es.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Qaqc-data-entry-validation-in-excel-SQL-es.md diff --git a/Qaqc-data-entry-validation-in-excel-SQL-es.md b/Qaqc-data-entry-validation-in-excel-SQL-es.md new file mode 100644 index 000000000..f84996ad3 --- /dev/null +++ b/Qaqc-data-entry-validation-in-excel-SQL-es.md @@ -0,0 +1,20 @@ +--- +layout: exercise +topic: QAQC +title: Data entry validation in Excel +language: SQL +--- +Cree una hoja de cálculo en Excel para la entrada de datos. Debe tener cinco columnas: Date, Site, Species, Mass, and Length. + + +Establezca los siguientes criterios de validación de datos para evitar que se ingresen datos no válidos: + +1. La columna Date debe configurarse para que no convierta las fechas a otros formatos. +2. Utilice la validación de datos en Excel para que el Site solo pueda ser uno de los siguientes `A1`, `A2`, `B1`, `B2`. Configure un mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. +3. Utilice la validación de datos de Excel para que Species solo puedan ser una de las siguientes `Dipodomys spectabilis`, `Dipodomys ordii`, `Dipodomys merriami`. Configure el mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. +4. Utilice la validación de datos de Excel para que Mass solo pueda ser un decimal mayor o igual a cero pero menor o igual a 500. Establezca u mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. +5. Length debe ser un número entero entre 1 y 10. Configure el mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. + +Verifique que las reglas de validación y el formateo de datos estén funcionando, pero no incluya ningún dato ingresado en el archivo final. + +Guarde este archivo como `data_entry_form.xlsx`. \ No newline at end of file From a5d67368b501fc4ecde348564d33953ff607eca4 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:57:05 -0500 Subject: [PATCH 21/52] Tidyr --- exercises-es/Tidyr-tree-biomass-R-es.md | 40 +++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 exercises-es/Tidyr-tree-biomass-R-es.md diff --git a/exercises-es/Tidyr-tree-biomass-R-es.md b/exercises-es/Tidyr-tree-biomass-R-es.md new file mode 100644 index 000000000..a62c941ac --- /dev/null +++ b/exercises-es/Tidyr-tree-biomass-R-es.md @@ -0,0 +1,40 @@ +--- +layout: exercise +topic: Tidyr +title: Tree Biomass +language: R +--- +Estimar de la cantidad total de biomasa (*la masa total de todos los individuos*) +en los bosques es importante para comprender el presupuesto mundial de carbono y cómo el planeta tierra responderá a los aumentos de emisiones de dióxido de carbono. Medir la masa de árboles enteros es complicado y requiere que los arboles se destruyan. +Afortunadamente, podemos estimar la masa de un árbol en función de su diámetro. + +Hay muchas ecuaciones para estimar la masa de un árbol a partir de su diámetro, +pero una buena opción es la ecuación: + +Masa = 0.124 * Diámetro2.53 + +donde `Mass` se mide en kg de biomasa seca sobre suelo seca y +`Diámetro` está en cm +[DAP](https://en.wikipedia.org/wiki/Diameter_at_breast_height) +([Brown 1997](http://www.fao.org/docrep/W4095E/W4095E00.htm)). + +Vamos a estimar la biomasa total de árboles en un area de 96 +hectáreas en las Ghats occidentales en la India. +[Los datos sin procesar](https://retriever.readthedocs.io/en/latest/). +Desafortunadamente, los datos estan almacenados en una de base de datos con una estructura pobre y +usar todos los troncos de los árboles sería difícil sin ordenar (tidying) primero los datos. + +1. Utilice `tidyr` para `gather()` los datos sin procesar en filas para cada tronco medido. +2. Escriba una función que tome un vector de diámetros de árboles como argumento y + devuelve un vector de masas de árboles. +3. Los troncos se miden en circunferencia (*o circunferencia*) en lugar de diámetro. + Escriba una función que tome un vector de circunferencias como argumento + y devuelve un vector de diámetros (*circunferencia = pi \* diámetro*). +4. Use las dos funciones que escribió para estimar la biomasa total (*es decir, + la suma de las masas*) de los árboles en este conjunto de datos, imprima el resultado en el pantalla. +5. Separe,`separate()`, el `SpCode` en `GenusCode` y `SpEpCode` y + estime la biomasa total por género en una tabla. *Técnicamente el + código de cuatro letras no identifica de forma única todos los géneros en el + conjunto de datos, pero asumiremos que lo hace para el propósito de este + ejercicio.* + \ No newline at end of file From 0899a7b3dad85e7ca92d4fdf65c51cb97a55dc3f Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 14:59:53 -0500 Subject: [PATCH 22/52] Making Choices --- ...Making-choices-basic-if-statements-R-es.md | 47 +++++++++++++++++++ .../Making-choices-choice-operators-R-es.md | 31 ++++++++++++ .../Making-choices-dna-or-rna-R-es.md | 29 ++++++++++++ ...king-choices-load-or-download-file-R-es.md | 23 +++++++++ ...ing-choices-size-estimates-by-name-R-es.md | 39 +++++++++++++++ ...-choices-unit-conversion-challenge-R-es.md | 32 +++++++++++++ 6 files changed, 201 insertions(+) create mode 100644 exercises-es/Making-choices-basic-if-statements-R-es.md create mode 100644 exercises-es/Making-choices-choice-operators-R-es.md create mode 100644 exercises-es/Making-choices-dna-or-rna-R-es.md create mode 100644 exercises-es/Making-choices-load-or-download-file-R-es.md create mode 100644 exercises-es/Making-choices-size-estimates-by-name-R-es.md create mode 100644 exercises-es/Making-choices-unit-conversion-challenge-R-es.md diff --git a/exercises-es/Making-choices-basic-if-statements-R-es.md b/exercises-es/Making-choices-basic-if-statements-R-es.md new file mode 100644 index 000000000..0b0c51022 --- /dev/null +++ b/exercises-es/Making-choices-basic-if-statements-R-es.md @@ -0,0 +1,47 @@ +--- +layout: exercise +topic: Making Choices +title: Basic If Statements +language: R +--- +1\. Complete (es decir, copie en su código y modifiquelo) la siguiente declaración `if` + de manera que que si `age_class ` es igual a "sapling", el valor de Y sea: `y <- 10`. + +```r +age_class = "sapling" +if (){ + +} +y +``` + +2\. Complete la siguiente declaración `if` de manera que si `age_class ` es igual a + "sapling" el valor de Y sea: `y <- 10` y si `age_class ` es igual a "seedling" + el valor de Y sea: `y <- 5`. + +```r +age_class = "seedling" +if (){ + +} +y +``` + +3\. Complete la siguiente declaración `if` de manera que si `age_class ` es igual a + "sapling" establece `y <- 10` y si `age_class ` es igual a "seedling" + el valor de Y sea: `y <- 5` y si `clase_de_edad` es otra cosa, entonces el valor de Y sea: + `y <- 0`. + + +```r +age_class = "adult" +if (){ + +} +y +``` + +4\. Convierta su declaración condicional de (3) en una función que tome + `age_class ` como argumento y devuelva `y`. Llame esta función 5 veces, una vez + con cada uno de los siguientes valores de `age_class `: "sapling", "seedling", + "adult", "mature", "established". diff --git a/exercises-es/Making-choices-choice-operators-R-es.md b/exercises-es/Making-choices-choice-operators-R-es.md new file mode 100644 index 000000000..51bc76a03 --- /dev/null +++ b/exercises-es/Making-choices-choice-operators-R-es.md @@ -0,0 +1,31 @@ +--- +layout: exercise +topic: Making Choices +title: Choice Operators +language: R +--- +Cree las siguientes variables. + +``` +w <- 10.2 +x <- 1.3 +y <- 2.8 +z <- 17.5 +colors <- c("red", "blue", "green") +masses <- c(45.2, 36.1, 27.8, 81.6, 42.4) +dna1 <- "attattaggaccaca" +dna2 <- "attattaggaacaca" +``` + +Úselas para imprimir si las siguientes premisas son "TRUE" o "FALSE". + +1. `w` es mayor que 10 +2. `"green"` está en `colors` +3. `x` es mayor que `y` +4. Cada valor en `mass` es mayor que 40. +5. 2 * `x` + 0.2 es igual a `y` +6. `dna1` es lo mismo que `dna2` +7. `dna1` no es lo mismo que `dna2` +8. `w` es mayor que `x`, o `y` es mayor que `z` +9. 'x' por 'w' está entre 13.2 y 13.5 +10. Cada masa en `mass` está entre 30 y 50. diff --git a/exercises-es/Making-choices-dna-or-rna-R-es.md b/exercises-es/Making-choices-dna-or-rna-R-es.md new file mode 100644 index 000000000..63bcc8f5d --- /dev/null +++ b/exercises-es/Making-choices-dna-or-rna-R-es.md @@ -0,0 +1,29 @@ +--- +layout: exercise +topic: Making Choices +title: DNA or RNA +language: R +--- + +Escriba una función que determine si una secuencia de pares de bases es ADN, ARN o si +no es posible decir dada la secuencia proporcionada. El ARN tiene la base Uracilo +(`"u"`) en lugar de la base Timina (`"t"`), por lo que las secuencias con u son ARN, +las secuencias con t son ADN, y las secuencias sin ninguna son desconocidas. + +Puede verificar si una cadena contiene un carácter (o una subcadena más larga) en R +usando `grepl(subcadena, cadena)`, entonces `grepl("u", secuencia)` verificará si el +cadena en la variable `secuencia` tiene la base `u`. + +Nombre la función `dna_or_rna()`, la misma recibir `sequence` como argumento. +Haga que la función devuelva una de las tres salidas: `"DNA"`, `"RNA"` o `"UNKNOWN"`. +Llame a la función en cada una de las siguientes secuencias. + + +``` +seq1 <- "ttgaatgccttacaactgatcattacacaggcggcatgaagcaaaaatatactgtgaaccaatgcaggcg" +seq2 <- "gauuauuccccacaaagggagugggauuaggagcugcaucauuuacaagagcagaauguuucaaaugcau" +seq3 <- "gaaagcaagaaaaggcaggcgaggaagggaagaagggggggaaacc" +``` + +*Reto (**opcional**)*: Descubre cómo hacer que tu función funcione con ambos +letras mayúsculas y minúsculas, o incluso cadenas con mayúsculas mixtas. diff --git a/exercises-es/Making-choices-load-or-download-file-R-es.md b/exercises-es/Making-choices-load-or-download-file-R-es.md new file mode 100644 index 000000000..cd33cb843 --- /dev/null +++ b/exercises-es/Making-choices-load-or-download-file-R-es.md @@ -0,0 +1,23 @@ +--- +layout: exercise +topic: Making Choices +title: Load or Download File +language: R +--- +Cuando los archivos de datos son de gran tamaño, puede ser útil descargar el archivo solo si no ha sido descargado. Una forma de hacer esto es verificar si el nombre del archivo existe en su directorio de trabajo. Si existe, cárguelo, si no, descárguelo. Puede usar la función `list.files()` para obtener una lista de archivos y directorios en el +directorio de trabajo y la función `download.file(url, filename)` para descargar +el archivo de una `url` a un `filename` específico. + +1. Escriba una declaración condicional que verifique si `surveys.csv` existe en el + directorio de trabajo, si no es así, descárguelo de + usando `download.file()`, y finalmente + carga el archivo en un marco de datos y muestra las primeras filas usando `head()` + función. + +2. Haga una versión de esta declaración condicional que sea una función, donde el + el nombre del archivo sea el primer argumento y el enlace para descargar el archivo + sea el segundo argumento. La función debe devolver el marco de datos resultante. + Agregue algo de documentación en la parte superior de la función que describa lo que hace. + Llame a esta función utilizando "species.csv" como nombre de archivo y + como enlace. Imprima las primeras + filas del marco de datos resultante usando `head()`. \ No newline at end of file diff --git a/exercises-es/Making-choices-size-estimates-by-name-R-es.md b/exercises-es/Making-choices-size-estimates-by-name-R-es.md new file mode 100644 index 000000000..1d5710e0e --- /dev/null +++ b/exercises-es/Making-choices-size-estimates-by-name-R-es.md @@ -0,0 +1,39 @@ +--- +layout: exercise +topic: Making Choices +title: Size Estimates by Name +language: R +--- +Esta es una continuación de [Use and Modify]({{ site.baseurl }}/exercises/Functions-use-and-modify-R). + +Para que sea aún más fácil trabajar con las funciones de estimación del tamaño de los dinosaurios, +usted ha decidido crear una función que le permita especificar el nombre del grupo de dinosaurios a que le desea estimar el tamaño y luego hacer que la función elija automáticamente los parámetros correctos. + +Cree una nueva función `get_mass_from_length_by_name()` que tome dos argumentos, +la `length` y el nombre del grupo de dinosaurios. Dentro de esta función use +declaraciones `if`/`else if`/`else` para verificar si el nombre es uno de los +siguientes valores y, si es así, establezca `a` y `b` en los valores apropiados. + +* *Estegosauria*: `a` = `10,95` y `b` = `2,64` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* *Theropoda*: `a` = `0.73` y `b` = `3.63` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). +* *Sauropoda*: `a` = `214.44` y `b` = `1.46` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). + +Si el nombre no es ninguno de estos valores, establezca `a` y `b` en `NA`. + +Una vez que la función haya asignado `a` y `b`, debe ejecutar `get_mass_from_length()` +con los valores adecuados y devolver la masa estimada. + +Ejecute la función para: + +1. Un *Stegosauria* de 10 metros de largo. +2. Un *Theropoda* que mide 8 metros de largo. +3. Un *Sauropoda* de 12 metros de largo. +4. Un *Ankylosauria* de 13 metros de largo. + +*Reto (**opcional**)*: Si el nombre no es uno de los valores que tienen `a` y `b` imprima un mensaje de que no sabe cómo convertir ese grupo que incluya el nombre de ese grupo en un mensaje como "No known estimation for Ankylosauria". (La función `paste()` será útil aquí). Hacer esto con éxito modificará su respuesta a (4), lo cual está bien + +*Reto (**opcional**)*: Cambie su función para que use dos +valores de `a` y `b` para *Stegosauria*. Cuando *Stegosauria* sea mayor que 8 +metros de largo su funciona debe usar la ecuación anterior. Cuando tenga menos de 8 metros de largo su función debe usar `a` = +`8.5` y `b` = `2.8`. Ejecute la función para un *Stegosauria* de 6 metros +longitud. \ No newline at end of file diff --git a/exercises-es/Making-choices-unit-conversion-challenge-R-es.md b/exercises-es/Making-choices-unit-conversion-challenge-R-es.md new file mode 100644 index 000000000..9870fe0a7 --- /dev/null +++ b/exercises-es/Making-choices-unit-conversion-challenge-R-es.md @@ -0,0 +1,32 @@ +--- +layout: exercise +topic: Making Choices +title: Unit Conversion Challenge +language: R +--- +Las medidas de la cantidad de energía utilizada por los procesos biológicos son críticas para +comprender muchos aspectos de la biología, desde la fisiología celular hasta el ecosistema +ecología. Hay muchas unidades diferentes para el uso de la energía y su utilización varía según los métodos, las áreas de investigación y los grupos de laboratorio. Escriba la función: +`convert_energy_units(energy_value, input_unit, output_unit)` para convertir unidades +entre los siguientes valores de energía: julios (J), kilojulios (KJ), calorías (CAL), +y kilocalorías (KCAL; *esta es la unidad utilizada para etiquetar la cantidad de energía +contenidos en los alimentos*). Un kilojulio son 1000 julios, una caloría son 4.1868 julios, una kilocaloría es 4186.8 julios. Un ejemplo de una llamada a esta función se vería así: + +``` +energy_in_cal <- 200 +energy_in_j <- convert_energy_units(energy_in_cal, "CAL", "J") +``` + +Haga que esta función sea más eficiente al vincular declaraciones `if else`. Si el +unidad de entrada o la unidad de salida no coinciden con los cinco tipos indicados anteriormente, incluya la +función print con el mensaje- "Sorry, I don't know how to convert " que incluya el nombre de la unidad +previsto. *En lugar de escribir una conversión individual entre cada una de las unidades de medida (lo que requeriría 12 declaraciones if) podría optar por +convertir todas las unidades de entrada a una escala común y luego convertir a partir de eso +escala común a las unidades de salida. Este enfoque es especialmente útil ya que +Es posible que deba agregar nuevas unidades más tarde y esto será mucho más fácil usando este método.* + +Use su función para responder las siguientes preguntas: + +1. ¿Qué cantidad de energía metabólica diaria utilizada por un ser humano (~2500 KCAL) en julios? +2. ¿Cuántas energía adicional utiliza una foca común comparada con un humano? La foca común utiliza ~52,500 KJ/día ([Nagy et al. 1999](http://www.annualreviews.org/doi/abs/10.1146/annurev.nutr.19.1.247)). Use la energía metabólica diaria de un humano diario mencionada en la parte 1. +3. ¿Cuántos ergios (ERG) hay en una kilocaloría? *Dado que no incluimos la conversión de erg, esto debería devolver nuestro mensaje 'no sé cómo convertir'* \ No newline at end of file From 1c5bd974c3241de0b978f2c0380192eeb0ce7b1c Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 15:01:54 -0500 Subject: [PATCH 23/52] QAQC --- ...c-data-entry-validation-in-excel-SQL-es.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 exercises-es/Qaqc-data-entry-validation-in-excel-SQL-es.md diff --git a/exercises-es/Qaqc-data-entry-validation-in-excel-SQL-es.md b/exercises-es/Qaqc-data-entry-validation-in-excel-SQL-es.md new file mode 100644 index 000000000..f84996ad3 --- /dev/null +++ b/exercises-es/Qaqc-data-entry-validation-in-excel-SQL-es.md @@ -0,0 +1,20 @@ +--- +layout: exercise +topic: QAQC +title: Data entry validation in Excel +language: SQL +--- +Cree una hoja de cálculo en Excel para la entrada de datos. Debe tener cinco columnas: Date, Site, Species, Mass, and Length. + + +Establezca los siguientes criterios de validación de datos para evitar que se ingresen datos no válidos: + +1. La columna Date debe configurarse para que no convierta las fechas a otros formatos. +2. Utilice la validación de datos en Excel para que el Site solo pueda ser uno de los siguientes `A1`, `A2`, `B1`, `B2`. Configure un mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. +3. Utilice la validación de datos de Excel para que Species solo puedan ser una de las siguientes `Dipodomys spectabilis`, `Dipodomys ordii`, `Dipodomys merriami`. Configure el mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. +4. Utilice la validación de datos de Excel para que Mass solo pueda ser un decimal mayor o igual a cero pero menor o igual a 500. Establezca u mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. +5. Length debe ser un número entero entre 1 y 10. Configure el mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. + +Verifique que las reglas de validación y el formateo de datos estén funcionando, pero no incluya ningún dato ingresado en el archivo final. + +Guarde este archivo como `data_entry_form.xlsx`. \ No newline at end of file From dbd120922958f5b2bf1691fbb923fe8cd53acddb Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 15:03:35 -0500 Subject: [PATCH 24/52] Delete Loops-basic-for-loops-R-es.md Uploaded to wrong folder --- Loops-basic-for-loops-R-es.md | 54 ----------------------------------- 1 file changed, 54 deletions(-) delete mode 100644 Loops-basic-for-loops-R-es.md diff --git a/Loops-basic-for-loops-R-es.md b/Loops-basic-for-loops-R-es.md deleted file mode 100644 index d1caeb464..000000000 --- a/Loops-basic-for-loops-R-es.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: exercise -topic: Loops -title: Basic For Loops -language: R ---- -1\. El siguiente código imprime los números del 1 al 5 una línea a la vez. Modifíquelo para imprimir los números del 2 al 16. - -```r -for (i in 1:5){ - print(i) -} -``` - -2\. El siguiente código imprime los números del 1 al 5 una línea a la vez. Modifíquelo para imprimir cada uno de estos números multiplicado por 3. - -```r -for (i in 1:5){ - print(i) -} -``` - -3\. Complete el código a continuación para que imprima el nombre de cada ave una línea a la vez. - -```r -birds = c('robin', 'woodpecker', 'blue jay', 'sparrow') -for (i in 1:length(_________)){ - print(birds[__]) -} -``` - -4\. Complete el código a continuación para que almacene un área para cada radio. - -```r -radius <- c(1.3, 2.1, 3.5) -areas <- vector(_____ = "numeric", length = ______) -for (__ in 1:length(________)){ - areas[__] <- pi * radius[i] ^ 2 -} -areas -``` - - -5\. Complete el siguiente código para calcular un área para cada par de `lengths` y `widths`, almacene las áreas en un vector y, una vez calculadas, imprímalas: - -```r -lengths = c(1.1, 2.2, 1.6) -widths = c(3.5, 2.4, 2.8) -areas <- vector(length = __________) -for (i in _____) { - areas[__] <- lengths[__] * widths[__] -} -areas -``` From 65737f9e3324b1edf52fe0eecd02724bfa5aeb19 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 15:03:48 -0500 Subject: [PATCH 25/52] Delete Capstone-cocoli-data-exploration-R-es.md Uploaded to wrong folder --- Capstone-cocoli-data-exploration-R-es.md | 64 ------------------------ 1 file changed, 64 deletions(-) delete mode 100644 Capstone-cocoli-data-exploration-R-es.md diff --git a/Capstone-cocoli-data-exploration-R-es.md b/Capstone-cocoli-data-exploration-R-es.md deleted file mode 100644 index a4a827e3c..000000000 --- a/Capstone-cocoli-data-exploration-R-es.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -layout: exercise -topic: Capstone -title: Cocili Data Exploration -language: R ---- - -Understanding the spatial distribution of ecological phenomena is central to the -study of natural systems. A group of scientists has collected a dataset on the -size, location, and species identify of all of the trees in a 4 ha site in -Panama call "Cocoli". - -Download the [Cocoli Data](http://ctfs.si.edu/webatlas/datasets/cocoli/cocoli.zip) -and explore the following spatial properties. - -1. Make a single plot showing the location of each tree for all species with - more than 100 individuals. Each species should be in its own subplot (i.e., - facet). Label the subplots with the genus and species names, not the species - code. Scale the size of the point by its stem diameter (use `dbh1`) so that - larger trees display as larger points. Have the code save the plot in a - `figures` folder in your project. -2. [Basal area](https://en.wikipedia.org/wiki/Basal_area) is a common measure in - forest management and ecology. It is the sum of the cross-sectional areas of - all of the trees occuring in some area and can be calculated as the sum of - 0.00007854 * DBH^2 over all of the trees. To look at how basal area varies - across the site divide the site into 100 m^2 sample regions (10 x 10 m cells) - and determining the total basal area in each region. I.e., take all of the - trees in a grid cell where x is between 0 and 10 and y is between 0 and 10 - and determine their basal area. Do the same thing for x between 0 and 10 and - y between 10 and 20, and so on. You can do this using two "nested" for loops - to subset the data and calculate the basal area in that region. Make a plot - that shows how the basal area varies spatially. Since the calculation is for - a square region, plot it that way using `geom_tile()` with the center of the - tile at the center of the region where basal area was calculated. Have the - code save the plot in a `figures` folder in your project. - - -Comprender la distribución espacial de los fenómenos ecológicos es fundamental para la -estudio de los sistemas naturales. Un grupo de científicos ha recopilado datos sobre el tamaño, ubicación e identificación de especies de todos los árboles en un sitio de 4 hectareas en "Cocoli", -Panamá. - -Descargue los [Datos de Cocoli] [Cocoli Data](http://ctfs.si.edu/webatlas/datasets/cocoli/cocoli.zip) -and explore the following spatial properties. - -1. Haga una sola gráfica que muestre la ubicación de cada árbol para todas las especies con - más de 100 individuos. Cada especie debe estar en su propia subgráfica (subplot) (es decir, - faceta). Etiquete las subgráfica (subplots) con los nombres de género y especie, no la especie - código. El tamaño del punto debe ser determinado por el diámetro de tallo (use `dbh1`) para que - los árboles más grandes se muestran como puntos más grandes. Haga que el código guarde las gráficas en un carpeta `figures` en su proyecto. - -2. [Basal area](https://en.wikipedia.org/wiki/Basal_area) es una medida común en el - manejo y conservación de bosques y ecología. Es la suma de las áreas de las secciones - transversales (cross-sectional areas) de - todos los árboles que se encuentran en un área y se puede calcular como la suma de - 0.00007854 * DAP^2 sobre todos los árboles. Para ver cómo varía el área basal - en todo el sitio, divida el sitio en regiones de muestra de 100 m^2 (celdas de 10 x 10 m) - y determine el área basal total en cada región. Es decir, tome todos los - árboles en una celda de cuadrícula donde X está entre: 0 y 10 e Y: entre 0 y 10 - y determine su área basal. Haga lo mismo para X entre: 0 y 10 y para - Y: entre 10 y 20, y así sucesivamente. Puede hacer esto usando dos bucles for (for loops) "anidados" - para crear un subconjunto de los datos y calcular el área basal en esa región. Haga una gráfica - que muestre cómo el área basal varía espacialmente. Como el cálculo es para - una región cuadrada, trácela de esa manera usando `geom_tile()` con el centro de la - mosaico en el centro de la región donde se calculó el área basal. Guarde la gráfica en una carpeta `figures` en su proyecto. \ No newline at end of file From 9af4cc4ae2e9ec602f8f50f78ab8500b402224d7 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 15:04:02 -0500 Subject: [PATCH 26/52] Delete Loops-multi-file-analysis-R-es.md Uploaded to wrong folder --- Loops-multi-file-analysis-R-es.md | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 Loops-multi-file-analysis-R-es.md diff --git a/Loops-multi-file-analysis-R-es.md b/Loops-multi-file-analysis-R-es.md deleted file mode 100644 index a7712f6c8..000000000 --- a/Loops-multi-file-analysis-R-es.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: exercise -topic: Loops -title: Multi-file Analysis -language: R ---- -Tiene collares satelitales en varios individuos y desea poder ver rápidamente todos sus movimientos recientes de manera simultánea. -Los datos son publicados diariamente en [url as a zip file]({{ site.baseurl }}/data/individual_collar_data.zip) y contienen un archivo csv para cada individuo: [{{ site.url }}/data/individual_collar_data.zip]({{ site.baseurl }}/data/individual_collar_data.zip) -Comience por: - -* Descargar el archivo zip usando `download.file()` -* Descomprimir el archivo usando `unzip()` -* Obtener una lista de todos los archivos que contengan en su nombre el patrón `"collar-data-.*.txt"` - -1. Use un bucle (loop) para cargar cada uno de estos archivos en R y haga un diagrama de líneas (usando `geom_path()`) para cada archivo con `long` en el eje `x` y `lat` en el eje `y`. -Las gráficas, como otros tipos de salida (outputs), no se muestran dentro de el bucle (loop) a menos que se escriba explícitamente, por lo que debe colocar el comando `ggplot()` dentro de una declaración `print()`. -Incluya el nombre del archivo en la gráfica como título usando `labs()`. - -2. Agregue código al bucle (loop) para calcular la latitud mínima y máxima en el archivo y almacene estos valores, junto con el nombre del archivo, en un marco de datos. -Muestra el marco de datos como salida. - -Si está interesado en ver otra aplicación de bucles for (for loops), [check out the code]({{ site.baseurl }}/code/Data-simulation-for-loops-multi-file-analysis) utilizado para simular los datos de este ejercicio usando bucles for. From 1e7aa5edf4e0ad5e2116436999cd69ef0b61a23a Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 15:04:21 -0500 Subject: [PATCH 27/52] Delete Loops-size-estimates-by-name-apply-R-es.md Uploaded to wrong folder --- Loops-size-estimates-by-name-apply-R-es.md | 23 ---------------------- 1 file changed, 23 deletions(-) delete mode 100644 Loops-size-estimates-by-name-apply-R-es.md diff --git a/Loops-size-estimates-by-name-apply-R-es.md b/Loops-size-estimates-by-name-apply-R-es.md deleted file mode 100644 index ffb920eb6..000000000 --- a/Loops-size-estimates-by-name-apply-R-es.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: exercise -topic: Loops -title: Size Estimates By Name Apply -language: R ---- -Esta es una continuación de [Size Estimates by Name]({{ site.baseurl }}/exercises/Making-choices-size-estimates-by-name-R). - -Descargue los [data on dinosaur lengths with species names]({{ site.baseurl }}/data/dinosaur_lengths.csv) e impórtelos usando `read.csv()`. - -Escriba una función `get_mass_from_length_by_name()` que use la ecuación `mass <- a * length^b` para estimar el tamaño de un dinosaurio a partir de su longitud. Esta función debe tomar dos argumentos, la `length` y el nombre del grupo de dinosaurios. Dentro de esta función, use las declaraciones `if`/`else if`/`else` para verificar si el nombre es uno de los siguientes valores y, de ser así, establezca `a` y `b` en los valores apropiados. - -* *Stegosauria*: `a = 10.95` and `b = 2.64` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). -* *Theropoda*: `a = 0.73` and `b = 3.63` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). -* *Sauropoda*: `a = 214.44` and `b = 1.46` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). - -Si el nombre no es ninguno de estos valores, defina `a = NA` y `b = NA`. - -1. Usa esta función y `mapply()` para calcular la masa estimada de cada dinosaurio. Deberá pasar los datos a `mapply()` como vectores o columnas individuales, no como el marco de datos completo. - -2. Usando `dplyr`, agregue una nueva columna `masses` al marco de datos (usando `rowwise()`, `mutate()` y la función que ha creado) e imprima el resultado en la consola. - -3. Usando `ggplot`, haga un histograma de masas de dinosaurios con una subplot para cada especie (usando `facet_wrap()`). From 974c385e03c0b17bf68daa4666a34909262494c0 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 15:04:36 -0500 Subject: [PATCH 28/52] Delete Qaqc-data-entry-validation-in-excel-SQL-es.md Uploaded to wrong folder --- Qaqc-data-entry-validation-in-excel-SQL-es.md | 20 ------------------- 1 file changed, 20 deletions(-) delete mode 100644 Qaqc-data-entry-validation-in-excel-SQL-es.md diff --git a/Qaqc-data-entry-validation-in-excel-SQL-es.md b/Qaqc-data-entry-validation-in-excel-SQL-es.md deleted file mode 100644 index f84996ad3..000000000 --- a/Qaqc-data-entry-validation-in-excel-SQL-es.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: exercise -topic: QAQC -title: Data entry validation in Excel -language: SQL ---- -Cree una hoja de cálculo en Excel para la entrada de datos. Debe tener cinco columnas: Date, Site, Species, Mass, and Length. - - -Establezca los siguientes criterios de validación de datos para evitar que se ingresen datos no válidos: - -1. La columna Date debe configurarse para que no convierta las fechas a otros formatos. -2. Utilice la validación de datos en Excel para que el Site solo pueda ser uno de los siguientes `A1`, `A2`, `B1`, `B2`. Configure un mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. -3. Utilice la validación de datos de Excel para que Species solo puedan ser una de las siguientes `Dipodomys spectabilis`, `Dipodomys ordii`, `Dipodomys merriami`. Configure el mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. -4. Utilice la validación de datos de Excel para que Mass solo pueda ser un decimal mayor o igual a cero pero menor o igual a 500. Establezca u mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. -5. Length debe ser un número entero entre 1 y 10. Configure el mensaje de error en este criterio de validación para proporcionar información sobre cuáles son los valores válidos. - -Verifique que las reglas de validación y el formateo de datos estén funcionando, pero no incluya ningún dato ingresado en el archivo final. - -Guarde este archivo como `data_entry_form.xlsx`. \ No newline at end of file From 4cf3834db1ebd2b442a0c74a8efe46b53c80cb54 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 15:04:51 -0500 Subject: [PATCH 29/52] Delete Making-choices-unit-conversion-challenge-R-es.md Uploaded to wrong folder --- ...-choices-unit-conversion-challenge-R-es.md | 32 ------------------- 1 file changed, 32 deletions(-) delete mode 100644 Making-choices-unit-conversion-challenge-R-es.md diff --git a/Making-choices-unit-conversion-challenge-R-es.md b/Making-choices-unit-conversion-challenge-R-es.md deleted file mode 100644 index 9870fe0a7..000000000 --- a/Making-choices-unit-conversion-challenge-R-es.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: exercise -topic: Making Choices -title: Unit Conversion Challenge -language: R ---- -Las medidas de la cantidad de energía utilizada por los procesos biológicos son críticas para -comprender muchos aspectos de la biología, desde la fisiología celular hasta el ecosistema -ecología. Hay muchas unidades diferentes para el uso de la energía y su utilización varía según los métodos, las áreas de investigación y los grupos de laboratorio. Escriba la función: -`convert_energy_units(energy_value, input_unit, output_unit)` para convertir unidades -entre los siguientes valores de energía: julios (J), kilojulios (KJ), calorías (CAL), -y kilocalorías (KCAL; *esta es la unidad utilizada para etiquetar la cantidad de energía -contenidos en los alimentos*). Un kilojulio son 1000 julios, una caloría son 4.1868 julios, una kilocaloría es 4186.8 julios. Un ejemplo de una llamada a esta función se vería así: - -``` -energy_in_cal <- 200 -energy_in_j <- convert_energy_units(energy_in_cal, "CAL", "J") -``` - -Haga que esta función sea más eficiente al vincular declaraciones `if else`. Si el -unidad de entrada o la unidad de salida no coinciden con los cinco tipos indicados anteriormente, incluya la -función print con el mensaje- "Sorry, I don't know how to convert " que incluya el nombre de la unidad -previsto. *En lugar de escribir una conversión individual entre cada una de las unidades de medida (lo que requeriría 12 declaraciones if) podría optar por -convertir todas las unidades de entrada a una escala común y luego convertir a partir de eso -escala común a las unidades de salida. Este enfoque es especialmente útil ya que -Es posible que deba agregar nuevas unidades más tarde y esto será mucho más fácil usando este método.* - -Use su función para responder las siguientes preguntas: - -1. ¿Qué cantidad de energía metabólica diaria utilizada por un ser humano (~2500 KCAL) en julios? -2. ¿Cuántas energía adicional utiliza una foca común comparada con un humano? La foca común utiliza ~52,500 KJ/día ([Nagy et al. 1999](http://www.annualreviews.org/doi/abs/10.1146/annurev.nutr.19.1.247)). Use la energía metabólica diaria de un humano diario mencionada en la parte 1. -3. ¿Cuántos ergios (ERG) hay en una kilocaloría? *Dado que no incluimos la conversión de erg, esto debería devolver nuestro mensaje 'no sé cómo convertir'* \ No newline at end of file From 0153b8dd8c02383260cb6794a6754acc2f1f4414 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Wed, 2 Feb 2022 15:05:20 -0500 Subject: [PATCH 30/52] Delete Making-choices-size-estimates-by-name-R-es.md Uploaded to wrong folder --- Making-choices-size-estimates-by-name-R-es.md | 39 ------------------- 1 file changed, 39 deletions(-) delete mode 100644 Making-choices-size-estimates-by-name-R-es.md diff --git a/Making-choices-size-estimates-by-name-R-es.md b/Making-choices-size-estimates-by-name-R-es.md deleted file mode 100644 index 1d5710e0e..000000000 --- a/Making-choices-size-estimates-by-name-R-es.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -layout: exercise -topic: Making Choices -title: Size Estimates by Name -language: R ---- -Esta es una continuación de [Use and Modify]({{ site.baseurl }}/exercises/Functions-use-and-modify-R). - -Para que sea aún más fácil trabajar con las funciones de estimación del tamaño de los dinosaurios, -usted ha decidido crear una función que le permita especificar el nombre del grupo de dinosaurios a que le desea estimar el tamaño y luego hacer que la función elija automáticamente los parámetros correctos. - -Cree una nueva función `get_mass_from_length_by_name()` que tome dos argumentos, -la `length` y el nombre del grupo de dinosaurios. Dentro de esta función use -declaraciones `if`/`else if`/`else` para verificar si el nombre es uno de los -siguientes valores y, si es así, establezca `a` y `b` en los valores apropiados. - -* *Estegosauria*: `a` = `10,95` y `b` = `2,64` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). -* *Theropoda*: `a` = `0.73` y `b` = `3.63` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). -* *Sauropoda*: `a` = `214.44` y `b` = `1.46` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). - -Si el nombre no es ninguno de estos valores, establezca `a` y `b` en `NA`. - -Una vez que la función haya asignado `a` y `b`, debe ejecutar `get_mass_from_length()` -con los valores adecuados y devolver la masa estimada. - -Ejecute la función para: - -1. Un *Stegosauria* de 10 metros de largo. -2. Un *Theropoda* que mide 8 metros de largo. -3. Un *Sauropoda* de 12 metros de largo. -4. Un *Ankylosauria* de 13 metros de largo. - -*Reto (**opcional**)*: Si el nombre no es uno de los valores que tienen `a` y `b` imprima un mensaje de que no sabe cómo convertir ese grupo que incluya el nombre de ese grupo en un mensaje como "No known estimation for Ankylosauria". (La función `paste()` será útil aquí). Hacer esto con éxito modificará su respuesta a (4), lo cual está bien - -*Reto (**opcional**)*: Cambie su función para que use dos -valores de `a` y `b` para *Stegosauria*. Cuando *Stegosauria* sea mayor que 8 -metros de largo su funciona debe usar la ecuación anterior. Cuando tenga menos de 8 metros de largo su función debe usar `a` = -`8.5` y `b` = `2.8`. Ejecute la función para un *Stegosauria* de 6 metros -longitud. \ No newline at end of file From e585aa6578785804c405d54092ac2240124c3b36 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Thu, 3 Feb 2022 09:24:52 -0500 Subject: [PATCH 31/52] Delete Loops-size-estimates-by-name-loop-R-es.md Uploaded to wrong folder --- Loops-size-estimates-by-name-loop-R-es.md | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 Loops-size-estimates-by-name-loop-R-es.md diff --git a/Loops-size-estimates-by-name-loop-R-es.md b/Loops-size-estimates-by-name-loop-R-es.md deleted file mode 100644 index 7a019b8d1..000000000 --- a/Loops-size-estimates-by-name-loop-R-es.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: exercise -topic: Loops -title: Size Estimates By Name Loop -language: R ---- -Esta es una continuación de [Size Estimates by Name]({{ site.baseurl }}/exercises/Making-choices-size-estimates-by-name-R). - - -Descargue e importe [data on dinosaur lengths with species names]({{ site.baseurl }}/data/dinosaur_lengths.csv). - -Escriba una función `mass_from_length()` que use la ecuación `mass <- a * length^b` para estimar el tamaño de un dinosaurio a partir de su longitud. -Esta función debe tomar dos argumentos, `length` y `species`. Para cada una de las siguientes entradas para "species", utilice los valores dados de `a` y `b` para calcular lo siguiente: - -* Para (for) `Stegosauria`: `a = 10.95` y `b = 2.64` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). -* Para (for) `Theropoda`: `a = 0.73` y `b = 3.63` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). -* Para (for) `Sauropoda`: `a` = `214.44` and `b = 1.46` ([Seebacher 2001](http://www.jstor.org/stable/4524171)). -* Para (for) cualquier otro valor de `species`: `a = 25.37` y `b = 2.49`. - -1. Utilice esta función y un bucle (loop) for para calcular la masa estimada de cada dinosaurio, almacene las masas en un vector y, luego de completar todos los cálculos, muestre los primeros elementos del vector utilizando `head()`. -2. Vuelva a agregar los resultados en el vector al marco de datos original. Muestra las primeras filas del marco de datos usando `head()`. -3. Calcule la masa media de cada 'species' utilizando 'dplyr'. - From 00fa51110651fd7a19e561c1dd80ffa134952e5c Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Thu, 3 Feb 2022 09:25:06 -0500 Subject: [PATCH 32/52] Delete Loops-size-estimates-vectorized-R-es.md Uploaded to wrong folder --- Loops-size-estimates-vectorized-R-es.md | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 Loops-size-estimates-vectorized-R-es.md diff --git a/Loops-size-estimates-vectorized-R-es.md b/Loops-size-estimates-vectorized-R-es.md deleted file mode 100644 index 5ceed98ff..000000000 --- a/Loops-size-estimates-vectorized-R-es.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: exercise -topic: Loops -title: Size Estimates Vectorized -language: R ---- - -Esta es una continuación de [Usar y modificar]({{ site.baseurl }}/exercises/Functions-use-and-modify-R). - -1. Escriba una función llamada `mass_from_length_theropoda()` que tome `length` como argumento para obtener una estimación de los valores de masa del dinosaurio *Theropoda*. Use la ecuación `masa <- 0.73 * length^3.63`. Copie los siguientes datos en R y pase el vector completo a su función para calcular la masa estimada de cada dinosaurio. - -`Theropoda_lengths <- c (17,8013631070471, 20,3764452071665, 14,0743486294308, 25,65782386974, 26,0952008049675, 20,3111541103134, 17,5663244372533, 11,2563431277577, 20,081903202614, 18,6071626441984, 18,0991894513166, 23,0659685685892, 20,5798853467837, 25,6179254233558, 24,3714331573996, 26,2847248252537, 25,4753783544473, 20,4642089867304, 16,0738256364701, 20,3494171706583, 19,854399305869, 17,7889814608919, 14,8016421998303, 19,6840911485379, 19,4685885050906, 24,4807784966691, 13,3359960054899, 21,5065994598917, 18,4640304608411, 19,5861532398676, 27,084751999756, 18,9609366301798, 22,4829168046521, 11,7325716149514, 18,3758846100456, 15,537504851634, 13,4848751773738, 7,68561192214935, 25,5963348603783, 16,588285389794) ` - -2. Cree una nueva versión de la función llamada `mass_from_length()` que use la ecuación `mass <- 0.73 * length^3.63` y tome `length`, `a` y `b` como argumentos. En los argumentos de la función, establezca los valores predeterminados para `a` en `0.73` y `b` en `3.63`. Si ejecuta esta función solo con los datos de longitud de la Parte 1, debería obtener el mismo resultado que la Parte 1. Copie los datos a continuación en R y llame a su función usando el vector de longitudes de la Parte 1 (arriba) y estos vectores de valores de `a` y `b` para estimar la masa de los dinosaurios usando diferentes valores de `a` y `b`. - - -`a_Values ​​<- C (0.759, 0.751, 0.74, 0.746, 0.759, 0.746, 0.759, 0.751, 0.749, 0.751, 0.738, 0.768, 0.736, 0.749, 0.746, 0.744, 0.746, 0.744, 0.749, 0.751, 0.749, 0.751, 0.749, 0.751, 0.744, 0.751, 0.744, 0.754, 0.744, 0.754, 0.774, 0.754, 0.774, 0.751, 0.763, 0.749, 0.763, 0.749, 0,741, 0,754, 0,746, 0,755, 0,764, 0,758, 0,76, 0,748, 0,745, 0,756, 0,739, 0,733, 0,757, 0,747, 0,741, 0,752, 0,752, 0,748)` - -`b_values ​​<- c (3.627, 3.633, 3.626, 3.633, 3.627, 3.633, 3.627, 3.629, 3.632, 3.628, 3.633, 3.627, 3.621, 3.63, 3.631, 3.632, 3.628, 3.626, 3.639, 3.626, 3.635, 3.629, 3.635, 3.629, 3.642, 3.632, 3.633, 3.629, 3.62, 3.619, 3.638, 3.627, 3.621, 3.628, 3.628, 3.635, 3.624, 3.621, 3.621, 3.632, 3.627, 3.624, 3.634, 3.621)` - -3. Cree un marco de datos para estos datos usando `dino_data <- data.frame(theropoda_lengths, a_values, b_values)`. Use `dplyr` para agregar una nueva columna `masses` a este marco de datos (usando `mutate()` y su función) e imprima el resultado en la consola. From e3fc52bcbcb586104998021a1b424b11d3e4fad7 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Thu, 3 Feb 2022 09:25:20 -0500 Subject: [PATCH 33/52] Delete Making-choices-load-or-download-file-R-es.md Uploaded to wrong folder --- Making-choices-load-or-download-file-R-es.md | 23 -------------------- 1 file changed, 23 deletions(-) delete mode 100644 Making-choices-load-or-download-file-R-es.md diff --git a/Making-choices-load-or-download-file-R-es.md b/Making-choices-load-or-download-file-R-es.md deleted file mode 100644 index cd33cb843..000000000 --- a/Making-choices-load-or-download-file-R-es.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: exercise -topic: Making Choices -title: Load or Download File -language: R ---- -Cuando los archivos de datos son de gran tamaño, puede ser útil descargar el archivo solo si no ha sido descargado. Una forma de hacer esto es verificar si el nombre del archivo existe en su directorio de trabajo. Si existe, cárguelo, si no, descárguelo. Puede usar la función `list.files()` para obtener una lista de archivos y directorios en el -directorio de trabajo y la función `download.file(url, filename)` para descargar -el archivo de una `url` a un `filename` específico. - -1. Escriba una declaración condicional que verifique si `surveys.csv` existe en el - directorio de trabajo, si no es así, descárguelo de - usando `download.file()`, y finalmente - carga el archivo en un marco de datos y muestra las primeras filas usando `head()` - función. - -2. Haga una versión de esta declaración condicional que sea una función, donde el - el nombre del archivo sea el primer argumento y el enlace para descargar el archivo - sea el segundo argumento. La función debe devolver el marco de datos resultante. - Agregue algo de documentación en la parte superior de la función que describa lo que hace. - Llame a esta función utilizando "species.csv" como nombre de archivo y - como enlace. Imprima las primeras - filas del marco de datos resultante usando `head()`. \ No newline at end of file From 606adbb3b1c921e3e6342a161dfc8c78c101c92a Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Thu, 3 Feb 2022 09:25:46 -0500 Subject: [PATCH 34/52] Delete Scientific-tree-biomass-challenge-R-es.md Uploaded to wrong folder --- Scientific-tree-biomass-challenge-R-es.md | 41 ----------------------- 1 file changed, 41 deletions(-) delete mode 100644 Scientific-tree-biomass-challenge-R-es.md diff --git a/Scientific-tree-biomass-challenge-R-es.md b/Scientific-tree-biomass-challenge-R-es.md deleted file mode 100644 index c0fac73b7..000000000 --- a/Scientific-tree-biomass-challenge-R-es.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: exercise -topic: Scientific -title: Tree Biomass Challenge -language: R ---- -Estimar de la cantidad total de biomasa (*la masa total de todos los individuos*) -en los bosques es importante para comprender el presupuesto mundial de carbono y cómo el planeta tierra responderá a los aumentos de emisiones de dióxido de carbono - -Normalmente no medimos la masa de un árbol, pero tomamos una medida de la -diámetro o circunferencia del tronco y luego estimamos su masa. - -Hay muchas ecuaciones para estimar la masa de un árbol a partir de su diámetro, -pero una buena opción es la ecuación: - -Masa = 0.124 * Diámetro2.53 - -donde `Mass` se mide en kg de biomasa seca sobre suelo seca y -`Diámetro` está en cm - -1\. Vamos a estimar la biomasa total de árboles en un area de 96 -hectáreas en las Ghats occidentales en la India. - - * [Download the data]({{ site.baseurl }}/data/ramesh2010-macroplots.csv) y - cargue los datos en R. - * Escriba una función que tome un vector de diámetros de árboles como argumento y - devuelve un vector de masas de árboles. - * Cree un pipeline `dplyr` que - * Agregue una nueva columna (usando `mutate` y la función que escribió) que contenga masas - calculadas a partir de los diámetros - * Agrupe el marco de datos en especies usando la columna `SpCode` - * Y luego calcule la biomasa (es decir, `sum` de las masas) para cada especie - (usando `summarize`) - * Almacene el resultado como un marco de datos - * Muestre el marco de datos resultante - -2\. Haga un histograma de los valores de biomasa de las especies que acaba de calcular. - - * Use 10 intervalos (bins) en el histograma (usando el argumento `bins`) - * Use una escala log10 para el eje x (usando `scale_x_log10`) - * Cambie la etiqueta del eje x a `Biomass` y la etiqueta del eje y a `Number of Species` (usando `labs`) \ No newline at end of file From 9cc113b74f8c782ca43474f25c8ad28ee78739f6 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Thu, 3 Feb 2022 09:26:00 -0500 Subject: [PATCH 35/52] Delete Loops-size-estimates-with-maximum-R-es.md Uploaded to wrong folder --- Loops-size-estimates-with-maximum-R-es.md | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 Loops-size-estimates-with-maximum-R-es.md diff --git a/Loops-size-estimates-with-maximum-R-es.md b/Loops-size-estimates-with-maximum-R-es.md deleted file mode 100644 index f3aff9f98..000000000 --- a/Loops-size-estimates-with-maximum-R-es.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: exercise -topic: Loops -title: Size Estimates With Maximum -language: R ---- -Esta es una continuación de la Parte 1 [Size Estimates Vectorized]({{ site.baseurl }}/exercises/Loops-size-estimates-vectorized-R). - -Cree una nueva versión de la función `mass_from_length_theropoda()` de la Parte 1 de [Size Estimates Vectorized]({{ site.baseurl }}/exercises/Loops-size-estimates-vectorized-R) llamada `mass_from_length_max()`. Esta función solo debe calcular una masa si el valor de `length` pasado a la función es menor que 20. Si `length` es mayor que 20, debe devuelver `NA` en su lugar. Use `sapply()` y esta nueva función para estimar la masa de los datos de `theropoda_lengths` de [Size Estimates Vectorized]({{ site.baseurl }}/exercises/Loops-size-estimates-vectorized-R). \ No newline at end of file From d21f70736b6c77c392c65f099ae6e5946432aa32 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Thu, 3 Feb 2022 09:26:12 -0500 Subject: [PATCH 36/52] Delete Making-choices-basic-if-statements-R-es.md Uploaded to wrong folder --- Making-choices-basic-if-statements-R-es.md | 47 ---------------------- 1 file changed, 47 deletions(-) delete mode 100644 Making-choices-basic-if-statements-R-es.md diff --git a/Making-choices-basic-if-statements-R-es.md b/Making-choices-basic-if-statements-R-es.md deleted file mode 100644 index 0b0c51022..000000000 --- a/Making-choices-basic-if-statements-R-es.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -layout: exercise -topic: Making Choices -title: Basic If Statements -language: R ---- -1\. Complete (es decir, copie en su código y modifiquelo) la siguiente declaración `if` - de manera que que si `age_class ` es igual a "sapling", el valor de Y sea: `y <- 10`. - -```r -age_class = "sapling" -if (){ - -} -y -``` - -2\. Complete la siguiente declaración `if` de manera que si `age_class ` es igual a - "sapling" el valor de Y sea: `y <- 10` y si `age_class ` es igual a "seedling" - el valor de Y sea: `y <- 5`. - -```r -age_class = "seedling" -if (){ - -} -y -``` - -3\. Complete la siguiente declaración `if` de manera que si `age_class ` es igual a - "sapling" establece `y <- 10` y si `age_class ` es igual a "seedling" - el valor de Y sea: `y <- 5` y si `clase_de_edad` es otra cosa, entonces el valor de Y sea: - `y <- 0`. - - -```r -age_class = "adult" -if (){ - -} -y -``` - -4\. Convierta su declaración condicional de (3) en una función que tome - `age_class ` como argumento y devuelva `y`. Llame esta función 5 veces, una vez - con cada uno de los siguientes valores de `age_class `: "sapling", "seedling", - "adult", "mature", "established". From 2d224a0b588f3f6dcfab91f2d05dff713532ac2d Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Thu, 3 Feb 2022 09:26:27 -0500 Subject: [PATCH 37/52] Delete Making-choices-choice-operators-R-es.md Uploaded to wrong folder --- Making-choices-choice-operators-R-es.md | 31 ------------------------- 1 file changed, 31 deletions(-) delete mode 100644 Making-choices-choice-operators-R-es.md diff --git a/Making-choices-choice-operators-R-es.md b/Making-choices-choice-operators-R-es.md deleted file mode 100644 index 51bc76a03..000000000 --- a/Making-choices-choice-operators-R-es.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -layout: exercise -topic: Making Choices -title: Choice Operators -language: R ---- -Cree las siguientes variables. - -``` -w <- 10.2 -x <- 1.3 -y <- 2.8 -z <- 17.5 -colors <- c("red", "blue", "green") -masses <- c(45.2, 36.1, 27.8, 81.6, 42.4) -dna1 <- "attattaggaccaca" -dna2 <- "attattaggaacaca" -``` - -Úselas para imprimir si las siguientes premisas son "TRUE" o "FALSE". - -1. `w` es mayor que 10 -2. `"green"` está en `colors` -3. `x` es mayor que `y` -4. Cada valor en `mass` es mayor que 40. -5. 2 * `x` + 0.2 es igual a `y` -6. `dna1` es lo mismo que `dna2` -7. `dna1` no es lo mismo que `dna2` -8. `w` es mayor que `x`, o `y` es mayor que `z` -9. 'x' por 'w' está entre 13.2 y 13.5 -10. Cada masa en `mass` está entre 30 y 50. From 750cd7adad783dd0919612f6191ef0d130f1046c Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Thu, 3 Feb 2022 09:27:16 -0500 Subject: [PATCH 38/52] Delete Making-choices-dna-or-rna-R-es.md --- Making-choices-dna-or-rna-R-es.md | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 Making-choices-dna-or-rna-R-es.md diff --git a/Making-choices-dna-or-rna-R-es.md b/Making-choices-dna-or-rna-R-es.md deleted file mode 100644 index 63bcc8f5d..000000000 --- a/Making-choices-dna-or-rna-R-es.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: exercise -topic: Making Choices -title: DNA or RNA -language: R ---- - -Escriba una función que determine si una secuencia de pares de bases es ADN, ARN o si -no es posible decir dada la secuencia proporcionada. El ARN tiene la base Uracilo -(`"u"`) en lugar de la base Timina (`"t"`), por lo que las secuencias con u son ARN, -las secuencias con t son ADN, y las secuencias sin ninguna son desconocidas. - -Puede verificar si una cadena contiene un carácter (o una subcadena más larga) en R -usando `grepl(subcadena, cadena)`, entonces `grepl("u", secuencia)` verificará si el -cadena en la variable `secuencia` tiene la base `u`. - -Nombre la función `dna_or_rna()`, la misma recibir `sequence` como argumento. -Haga que la función devuelva una de las tres salidas: `"DNA"`, `"RNA"` o `"UNKNOWN"`. -Llame a la función en cada una de las siguientes secuencias. - - -``` -seq1 <- "ttgaatgccttacaactgatcattacacaggcggcatgaagcaaaaatatactgtgaaccaatgcaggcg" -seq2 <- "gauuauuccccacaaagggagugggauuaggagcugcaucauuuacaagagcagaauguuucaaaugcau" -seq3 <- "gaaagcaagaaaaggcaggcgaggaagggaagaagggggggaaacc" -``` - -*Reto (**opcional**)*: Descubre cómo hacer que tu función funcione con ambos -letras mayúsculas y minúsculas, o incluso cadenas con mayúsculas mixtas. From b8e6608201faa8b2afd779952aac1fadea943c64 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Thu, 3 Feb 2022 09:27:37 -0500 Subject: [PATCH 39/52] Delete Capstone-length-of-floods-R-es.md Uploaded to wrong folder --- Capstone-length-of-floods-R-es.md | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 Capstone-length-of-floods-R-es.md diff --git a/Capstone-length-of-floods-R-es.md b/Capstone-length-of-floods-R-es.md deleted file mode 100644 index 24d5af623..000000000 --- a/Capstone-length-of-floods-R-es.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -layout: exercise -topic: Capstone -title: Length of Floods -language: R ---- - -Usted interesado en estudiar el efecto del tiempo y la duración de los pequeños -eventos de inundación a escala en un ecosistema. Para hacer esto, debe determinar cuándo se producen las inundaciones y su duración según los datos de la estación de aforo. - -Descargar el -[stream guage data for USGS stream gauge site 02236000]({{ site.baseurl }}/data/st_johns_stream_data.csv) de el río St. Johns en Florida. Encuentre las partes continuas de las series de tiempo donde el nivel de la corriente está por encima del umbral de inundación de 2.26 pies y almacene la información sobre la fecha de inicio y la duración de cada inundación en un marco de datos. \ No newline at end of file From 2dfe5cd9e27725f52cb4775015c04eb08697a783 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Thu, 3 Feb 2022 09:27:59 -0500 Subject: [PATCH 40/52] Delete Making-choices-dna-or-rna-iteration-R-es.md Uploaded to wrong folder --- Making-choices-dna-or-rna-iteration-R-es.md | 22 --------------------- 1 file changed, 22 deletions(-) delete mode 100644 Making-choices-dna-or-rna-iteration-R-es.md diff --git a/Making-choices-dna-or-rna-iteration-R-es.md b/Making-choices-dna-or-rna-iteration-R-es.md deleted file mode 100644 index 8640bdd62..000000000 --- a/Making-choices-dna-or-rna-iteration-R-es.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -layout: exercise -topic: Making Choices -title: DNA or RNA Iteration -language: R ---- -Esta es una continuación de [DNA or RNA]({{ site.baseurl }}/exercises/Making-choices-dna-or-rna-R). -Escriba una función, `dna_or_rna(sequence)`, que determine si una secuencia -de pares de bases es ADN, ARN, o si no es posible saberlo dada la -secuencia dada. Ya que lo único lo que la función sabrá sobre el material es la -secuencia, la única forma de diferencias entre el ADN y el ARN es que -el ARN tiene la base uracilo (`"u"`) en lugar de la base timina (`"t"`). Haga que la función devuelva una de las tres salidas: `"DNA"`, `"RNA"` o `"UNKNOWN"`. - -1. Utilice la función y un bucle `for` (for loop) para imprimir el tipo de secuencia en la siguiente lista. -2. Use su función y `sapply` para imprimir el tipo de secuencia en la siguiente lista. - -``` -sequences = c("ttgaatgccttacaactgatcattacacaggcggcatgaagcaaaaatatactgtgaaccaatgcaggcg", "gauuauuccccacaaagggagugggauuaggagcugcaucauuuacaagagcagaauguuucaaaugcau", "gaaagcaagaaaaggcaggcgaggaagggaagaagggggggaaacc", "guuuccuacaguauuugaugagaaugagaguuuacuccuggaagauaauauuagaauguuuacaacugcaccugaucagguggauaaggaagaugaagacu", "gauaaggaagaugaagacuuucaggaaucuaauaaaaugcacuccaugaauggauucauguaugggaaucagccggguc") -``` - - -*Opcional: para un desafío adicional, haga que su función funcione con letras mayusculas y minúsculas, o incluso cadenas con que incluyan ambas* From 22ef7d750f02fc42b6e11c640cc313a6e476ce04 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Mon, 7 Feb 2022 10:47:30 -0500 Subject: [PATCH 41/52] dplyr --- .../Data-analysis-code-shuffle-R-es.md | 32 +++++++++++++++ .../Dplyr-shrub-volume-data-basics-R-es.md | 23 +++++++++++ exercises-es/Portal-data-challenge-R-es.md | 12 ++++++ exercises-es/Portal-data-manip-R-es.md | 41 +++++++++++++++++++ exercises-es/Portal-data-manip-pipes-R-es.md | 16 ++++++++ 5 files changed, 124 insertions(+) create mode 100644 exercises-es/Data-analysis-code-shuffle-R-es.md create mode 100644 exercises-es/Dplyr-shrub-volume-data-basics-R-es.md create mode 100644 exercises-es/Portal-data-challenge-R-es.md create mode 100644 exercises-es/Portal-data-manip-R-es.md create mode 100644 exercises-es/Portal-data-manip-pipes-R-es.md diff --git a/exercises-es/Data-analysis-code-shuffle-R-es.md b/exercises-es/Data-analysis-code-shuffle-R-es.md new file mode 100644 index 000000000..0df557cdf --- /dev/null +++ b/exercises-es/Data-analysis-code-shuffle-R-es.md @@ -0,0 +1,32 @@ +--- +layout: exercise +topic: Data Analysis +title: Code Shuffle +language: R +--- + +Nos interesa conocer la variación mensual de la precipitación en +Gainesville, Florida. Usaremos algunos datos de la +[NOAA National Climatic Data Center](http://www.ncdc.noaa.gov/). + +Cada fila del [archivo de datos](https://datacarpentry.org/semester-biology/data/gainesville-precip.csv) es un año (de 1961 a 2013) y cada columna es un mes +(enero - diciembre). + +Reorganice el siguiente programa para que: + +- Importe los datos +- Calcule la precipitación promedio en cada mes a lo largo de los años. +- Grafique los promedios mensuales como un diagrama de línea simple + +Finalmente, agregue un comentario sobre el código que describa lo que hace. El comentario +el carácter en R es `#`. + +Está bien si no sabe exactamente cómo funcionan los detalles del programa en este momento. +punto, solo necesita descifrar el orden correcto de las líneas con referencia a cuándo +se definen las variables y cuándo se utilizan. + +``` +plot(monthly_mean_ppt, type = "l", xlab = "Month", ylab = "Mean Precipitation") +monthly_mean_ppt <- colMeans(ppt_data) +ppt_data <- read.csv("https://datacarpentry.org/semester-biology/data/gainesville-precip.csv", header = FALSE) +``` \ No newline at end of file diff --git a/exercises-es/Dplyr-shrub-volume-data-basics-R-es.md b/exercises-es/Dplyr-shrub-volume-data-basics-R-es.md new file mode 100644 index 000000000..eb02b50ac --- /dev/null +++ b/exercises-es/Dplyr-shrub-volume-data-basics-R-es.md @@ -0,0 +1,23 @@ +--- +layout: exercise +topic: dplyr +title: Shrub Volume Data Basics +language: R +--- +La Dra. Granger está interesada en estudiar los factores que controlan el tamaño y el +almacenamiento de carbono de arbustos. La Dra. ha realizado un experimento para observar el efecto +de tres tratamientos diferentes sobre el volumen de los arbustos en cuatro ubicaciones diferentes. Ella ha colocado el archivo de datos en la web para que lo descargue: + +* [Shrub dimensions data]({{ site.baseurl }}/data/shrub-volume-data.csv) + +Descargue esto en su carpeta `data` e importelo usando `read.csv ()`, familiarícese con los datos y use `dplyr` para completar las siguientes tareas. + +1. Seleccione los datos de la columna `length` e imprímalos (usando `select`). +2. Seleccione los datos de las columnas `site` y `experiment` e imprímalos (usando `select`). +3. Agregue una nueva columna llamada `área` que contenga el área del arbusto, que es el largo por el ancho (usando `mutate`). +4. Ordene los datos por `length` (usando `arrange`). +5. Filtre los datos para incluir solo plantas con `height` mayores de 5 (usando `filter`). +6. Filtre los datos para incluir solo plantas con `height` mayores de 4 y `width` mayores de 2 (usando `,` o `&` para incluir dos condiciones). +7. Filtre (`filter`) los datos para incluir solo plantas del Experimento 1 o Experimento 3 (usando `|` para "o"). +8. Filtre (`filter`) los datos para eliminar filas con valores nulos en la columna `height` (usando `!is.na`) +9. Cree un nuevo marco de datos llamado `shrub_volumes` que incluya todos los datos originales y una nueva columna que contenga los volúmenes (`length` * `width` * `height`) y muéstrelos. \ No newline at end of file diff --git a/exercises-es/Portal-data-challenge-R-es.md b/exercises-es/Portal-data-challenge-R-es.md new file mode 100644 index 000000000..123fc6555 --- /dev/null +++ b/exercises-es/Portal-data-challenge-R-es.md @@ -0,0 +1,12 @@ +--- +layout: exercise +topic: dplyr +title: Portal Data Challenge +language: R +--- + +Desarrolle un pipeline para manipular los datos de la tabla `surveys` de Portal y produzca una tabla de datos solamente para las especies de Dipodomys (`DM`, `DO`, `DS`). +La identificación de la especie debe presentarse en minúsculas, no en mayúsculas. +La tabla debe contener información sobre la fecha, la identificación de la especie, el peso y la longitud del retropié (hindfoot). +Los datos no deben incluir valores nulos para en el peso o en la longitud del retropié. +La tabla debe ordenarse primero por especie (para que cada especie se agrupe) y luego por peso, con los pesos más altos en la parte superior. \ No newline at end of file diff --git a/exercises-es/Portal-data-manip-R-es.md b/exercises-es/Portal-data-manip-R-es.md new file mode 100644 index 000000000..f6eb44c1b --- /dev/null +++ b/exercises-es/Portal-data-manip-R-es.md @@ -0,0 +1,41 @@ +--- +layout: exercise +topic: dplyr +title: Portal Data Manipulation +language: R +--- + +Download a copy of the +[Portal Teaching Database surveys table](https://ndownloader.figshare.com/files/2292172) (*If you are using RStudio Cloud in a class it may have already been added to your workspace for you*) +and load it into R using `read.csv()`. + +***Do not use pipes for this exercise.*** + +1. Use `select()` to create a new data frame with just the `year`, `month`, + `day`, and `species_id` columns in that order. +2. Use `mutate()`, `select()`, and `filter()` with `!is.na()` to create a new + data frame with + the `year`, `species_id`, and weight **in kilograms** of each individual, + with no null weights. The weight in the table is given in grams so you will + need to create a new column for weight in kilograms by dividing the weight column by 1000. +3. Use the `filter()` function to get all of the rows in the data frame for the + species ID `SH`. +--- +diseño: ejercicio +tema: dplyr +título: Manipulación de datos del portal +idioma: R +--- + +Descargue una copia de [Portal Teaching Database surveys table](https://ndownloader.figshare.com/files/2292172) (*Si está utilizando RStudio Cloud, es posible que los datos hayan sido agregados a su espacio de trabajo*) +y cárguela en R usando `read.csv()`. + +***No use pipes para este ejercicio.*** + +1. Use `select()` para crear un nuevo marco de datos que contenga estas columnas en el siguiente orden: `year`, `month`, `day` y `species_id`. +2. Utilice `mutate()`, `select()` y `filter()` con `!is.na()` para crear un nuevo + marco de datos con `year`, `species_id` y el peso **en kilogramos** de cada individuo, + sin valores nulos. El peso,`weight` se da en gramos, por lo que + necesita crear una nueva columna para el peso en kilogramos dividiendo la columna de `weight` por 1000. +3. Use la función `filter()` para obtener todas las filas en el marco de datos para + ID de especie: `SH`. \ No newline at end of file diff --git a/exercises-es/Portal-data-manip-pipes-R-es.md b/exercises-es/Portal-data-manip-pipes-R-es.md new file mode 100644 index 000000000..c59da3b55 --- /dev/null +++ b/exercises-es/Portal-data-manip-pipes-R-es.md @@ -0,0 +1,16 @@ +--- +layout: exercise +topic: dplyr +title: Portal Data Manipulation Pipes +language: R +--- + +Descargue una copia de +[Portal Teaching Database surveys table](https://ndownloader.figshare.com/files/2292172) +y cárguela en R usando `read.csv()`. + +Use pipes (`%>%`) para combinar las siguientes operaciones y manipular los datos. + +1. Utilice `mutate()`, `select()` y `filter()` con `is.na()` para crear un nuevo marco de datos con + el `year `, `species_id` y el peso **en kilogramos** de cada individuo, retirando los valores de peso nulos. +2. Use `filter()` y `select()` para obtener las columnas: `year`, `month`, `day` y `species_id` para todas las filas del marco de datos donde `species_id` es `SH`. \ No newline at end of file From fae77e851cb444f79806ac6b5eef558012f00625 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Mon, 7 Feb 2022 10:48:08 -0500 Subject: [PATCH 42/52] r-aggregation-joins --- exercises-es/Dplyr-fix-the-code-R-es.txt | 22 +++++++++++++++++++ exercises-es/Portal-data-dplyr-review-R-es.md | 17 ++++++++++++++ ...building-data-frames-from-vectors-R-es.txt | 8 +++++++ 3 files changed, 47 insertions(+) create mode 100644 exercises-es/Dplyr-fix-the-code-R-es.txt create mode 100644 exercises-es/Portal-data-dplyr-review-R-es.md create mode 100644 exercises-es/building-data-frames-from-vectors-R-es.txt diff --git a/exercises-es/Dplyr-fix-the-code-R-es.txt b/exercises-es/Dplyr-fix-the-code-R-es.txt new file mode 100644 index 000000000..813807acb --- /dev/null +++ b/exercises-es/Dplyr-fix-the-code-R-es.txt @@ -0,0 +1,22 @@ +Este ejercicio es una continuación de +[Shrub Volume Aggregation]({{ site.baseurl }}/exercises/Dplyr-shrub-volume-aggregation-R). +Si aún no tiene [shrub volume data]({{ site.baseurl }}/data/shrub-volume-data.csv) en su directorio de trabajo, descárguelo. + +Se supone que el siguiente código importa los datos del volumen de arbustos y calcula la media del +volumen de arbustos para cada area de estudio y, por separado, para cada experimento. + +```r +read.csv("shrub-volume-data.csv") +shrub_data %>% + mutate(volume = length * width * height) %>% + group_by(site) %>% + summarize(mean_volume = max(volume)) +shrub_data %>% + mutate(volume = length * width * height) + group_by(experiment) %>% + summarize(mean_volume = mean(volume)) +``` + + +1. Corrija los errores en el código para que el código haga lo que debería hacer. +2. Agregue un comentario en la parte superior del código que explique lo que hace. \ No newline at end of file diff --git a/exercises-es/Portal-data-dplyr-review-R-es.md b/exercises-es/Portal-data-dplyr-review-R-es.md new file mode 100644 index 000000000..c715ede29 --- /dev/null +++ b/exercises-es/Portal-data-dplyr-review-R-es.md @@ -0,0 +1,17 @@ +--- +layout: exercise +topic: dplyr +title: Portal Data dplyr Review +language: R +--- +Si `survey.csv`,` species.csv` y `plots.csv` no están disponibles en su espacio de trabajo, descárguelos: + +* [`surveys.csv`](https://ndownloader.figshare.com/files/2292172) +* [`species.csv`](https://ndownloader.figshare.com/files/3299483) +* [`plots.csv`](https://ndownloader.figshare.com/files/3299474) + +Cárguelos a R usando `read.csv ()`. + +Queremos hacer un análisis que compare el tamaño de los individuos en las parcelas de `Control` con el tamaño de los individuos en las parcelas `Long-term Krat Exclosures`. Cree un marco de datos con `year`,` genus`, `species`, `weight` y `plot_type` para todos los casos donde el +el tipo de parcela sea `Control` o `Long-term Krat Exclosures`. Solo incluya +casos en los que `Taxa` es "Rodent". Elimine cualquier registro que no contenga un valor de `weight`. \ No newline at end of file diff --git a/exercises-es/building-data-frames-from-vectors-R-es.txt b/exercises-es/building-data-frames-from-vectors-R-es.txt new file mode 100644 index 000000000..aa4a8ae1c --- /dev/null +++ b/exercises-es/building-data-frames-from-vectors-R-es.txt @@ -0,0 +1,8 @@ +Los siguientes vectores contienen datos individuales sobre el largo, ancho y alto de 10 tejos. +[* Taxus baccata *] (https://es.wikipedia.org/wiki/Taxus_baccata): +``` +length <- c(2.2, 2.1, 2.7, 3.0, 3.1, 2.5, 1.9, 1.1, 3.5, 2.9) +width <- c(1.3, 2.2, 1.5, 4.5, 3.1, NA, 1.8, 0.5, 2.0, 2.7) +height <- c(9.6, 7.6, 2.2, 1.5, 4.0, 3.0, 4.5, 2.3, 7.5, 3.2) + +Haga un marco de datos que contenga estos tres vectores como columnas junto con una columna `genus` que contenga el nombre *Taxus* en todas las filas y una columna `species` que contenga la palabra *baccata * en todas las filas. \ No newline at end of file From 8a439ff1372c05e8c68056024826ac5d53f830bb Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Mon, 7 Feb 2022 10:48:38 -0500 Subject: [PATCH 43/52] Graphing --- Graphing-acacia-ants-R-es.md | 23 ++++++++++++++ Graphing-acacia-ants-data-manip-R-es.md | 33 ++++++++++++++++++++ Graphing-acacia-ants-histograms-R-es.md | 27 ++++++++++++++++ Graphing-adult-vs-newborn-size-R-es.md | 29 +++++++++++++++++ Graphing-data-from-multiple-tables-R-es.md | 20 ++++++++++++ Graphing-mass-vs-metabolism-R-es.md | 36 ++++++++++++++++++++++ 6 files changed, 168 insertions(+) create mode 100644 Graphing-acacia-ants-R-es.md create mode 100644 Graphing-acacia-ants-data-manip-R-es.md create mode 100644 Graphing-acacia-ants-histograms-R-es.md create mode 100644 Graphing-adult-vs-newborn-size-R-es.md create mode 100644 Graphing-data-from-multiple-tables-R-es.md create mode 100644 Graphing-mass-vs-metabolism-R-es.md diff --git a/Graphing-acacia-ants-R-es.md b/Graphing-acacia-ants-R-es.md new file mode 100644 index 000000000..273968f70 --- /dev/null +++ b/Graphing-acacia-ants-R-es.md @@ -0,0 +1,23 @@ +--- +layout: exercise +topic: Graphing +title: Acacia and Ants +language: R +--- +Investigadores en Kenia han estado explorando cómo los grandes herbívoros afectan las plantas. + +Verifique si `ACACIA_DREPANOLOBIUM_SURVEY.txt` está en su espacio de trabajo. +Si no, [descárgalo](http://www.esapubs.org/archive/ecol/E095/064/ACACIA_DREPANOLOBIUM_SURVEY.txt). +Impórtelos a R usando el siguiente comando: + +```r +acacia <- read.csv("ACACIA_DREPANOLOBIUM_SURVEY.txt", sep="\t", na.strings = c("dead")) +``` + +1. Haga un diagrama de dispersión con 'CIRC' en el eje X y 'AXIS1' (el dosel máximo + ancho) en el eje Y. Etiquete el eje X como "Circumference" y el eje y "Canopy + Diameter". +2. Haga la misma gráfica que (1), pero con ambos ejes en escala logarítmica (usando `scale_x_log10` y `scale_y_log10`). +3. La misma gráfica que (1), pero con puntos coloreados según la columna "HORMIGA" (la especie de hormiga simbionte que vive con la acacia) +4. La misma gráfica que (3)), pero en lugar de diferentes colores muestre diferentes especies de hormigas (valores de `ANT`), cada una en una subgráfica separada. +5. La misma gráfica que (4) pero agregue un modelo simple de los datos con `geom_smooth`. \ No newline at end of file diff --git a/Graphing-acacia-ants-data-manip-R-es.md b/Graphing-acacia-ants-data-manip-R-es.md new file mode 100644 index 000000000..7e2fabb51 --- /dev/null +++ b/Graphing-acacia-ants-data-manip-R-es.md @@ -0,0 +1,33 @@ +--- +layout: exercise +topic: Graphing +title: Acacia and Ants Data Manipulation +language: R +--- +Un experimento en Kenia ha estado explorando la influencia de los grandes herbívoros en las plantas. + +Verifique si `TREE_SURVEYS.txt` está en su espacio de trabajo. +Si no, [download `TREE_SURVEYS.txt`](https://ndownloader.figshare.com/files/5629536). +Use `read_tsv` del paquete `readr` para leer los datos usando el siguiente comando: + +```r +trees <- read_tsv("TREE_SURVEYS.txt") +``` + +1. Actualice el marco de datos `trees` con una nueva columna llamada `canopy_area` que contenga + el área de dosel estimada calculada como: el valor en la columna `AXIS_1` + multiplicado por el valor de la columna `AXIS_2`. + Muestre la salida del marco de datos `trees` con solo las columnas `SURVEY`, `YEAR`, `SITE` y `canopy_area`. + +2. Haga un diagrama de dispersión con `canopy_area` en el eje de X y `HEIGHT` en el eje de Y. Coloree los puntos por `TREATMENT` y grafique los puntos para cada valor en + la columna `SPECIES` en una subgráfica separada. Rotule el eje X como "Canopy Area + (m)" y el eje y "Height (m)". Haga que el tamaño del punto sea 2. +3. La gráfica del ejercicio (2) contiene un valor atípico. 50 por 50 metros es un tamaño exagerado para una Acacia real, así que filtre los datos para eliminar cualquier valor de `AXIS_1` + y `AXIS_2` mayor de 20 y actualize el marco de datos. Luego rehaga la gráfica. +4. Usando los datos sin el valor atípico (es decir, los datos generados en (3)), + averigué cómo ha ido cambiando la abundancia de cada especie a lo largo del tiempo. + Use `group_by`, `summarize` y `n` para crear un marco de datos con `YEAR`, + 'SPECIES', y una columna de 'abundance' que tiene el número de individuos en + cada especie en cada año. Imprima este marco de datos. +5. Usando los datos que generó el marco de datos en (4), haga una gráfica de líneas con puntos (usando `geom_line` además de `geom_point`) con `YEAR` en el eje de X y `abundance` en el eje de Y con una subgráfica por especie. Para que pueda ver claramente cada tendencia, deje que la escala para + el eje y varíe entre gráficas agregando `scales = "free_y"` como un argumento opcional a `facet_wrap`. \ No newline at end of file diff --git a/Graphing-acacia-ants-histograms-R-es.md b/Graphing-acacia-ants-histograms-R-es.md new file mode 100644 index 000000000..8dfae75de --- /dev/null +++ b/Graphing-acacia-ants-histograms-R-es.md @@ -0,0 +1,27 @@ +--- + +layout: exercise +topic: Graphing +title: Acacia and Ants Histograms +language: R +--- + +Un experimento en Kenia ha estado explorando la influencia de los grandes herbívoros en las plantas. + +Verifique si `ACACIA_DREPANOLOBIUM_SURVEY.txt` está en su espacio de trabajo. +Si no, [descárgalo](http://www.esapubs.org/archive/ecol/E095/064/ACACIA_DREPANOLOBIUM_SURVEY.txt).Impórtelos a R usando el siguiente comando: + +```r +acacia <- read.csv("data/ACACIA_DREPANOLOBIUM_SURVEY.txt", sep="\t", na.strings = c("dead")) +``` + +1. Haga un diagrama de barra del número de acacias con cada especie de hormiga mutualista (usando la columna 'ANT'). +2. Haga un histograma de la altura de la acacia (usando la columna `ALTURA`). Etiqueta + el eje x "Height (m)" y el eje y "Number of Acacia". +3. Haga una gráfica que muestre los histogramas de `AXIS1` y `AXIS2`. Debido a la estructura de + los datos, deberá agregar una segunda capa, geom_histogram(), que + especifique una nueva estética. Para que sea posible ver ambos conjuntos de barras + deberá hacerlos transparentes con el argumento opcional alfa = 0.3. + Establezca el color para `AXIS1` en "red" y `AXIS2` en "black" usando el argumento `fill`. Etiquete el eje x como "Canopy Diameter(m)" y el eje y como "Number of Acacia". +4. Use `facet_wrap()` para hacer la misma gráfica que (3) pero con una subgráfica para cada + tratamiento. Establezca el número de intervalos (bins) en el histograma como 10. \ No newline at end of file diff --git a/Graphing-adult-vs-newborn-size-R-es.md b/Graphing-adult-vs-newborn-size-R-es.md new file mode 100644 index 000000000..d36bcda42 --- /dev/null +++ b/Graphing-adult-vs-newborn-size-R-es.md @@ -0,0 +1,29 @@ +--- +layout: exercise +topic: Graphing +title: Adult vs Newborn Size +language: R +--- +Los organismos grandes tienen descendencia más grande. Queremos explorar la forma de este +relación en los mamíferos. + +Verifique si `Mammal_lifehistories_v2.txt` está en su directorio de trabajo. +Si no [descárgalo](http://esapubs.org/archive/ecol/E084/093/Mammal_lifehistories_v2.txt) +de la web. Estos datos están delimitados por [Tab], por lo que querrá +usar `sep = "\t"` como argumento opcional cuando llame a `read.csv()`. El `\t` un carácter de tabulación en R (y la mayoría de los otros lenguajes de programación). + +Cuando importe los datos, habrán algunas líneas en blanco adicionales al final de el documento. Deshágase de ellas usando el argumento opcional `read.csv()` donde `nrows = 1440` para importar solo las primeras 1440 filas. + +Los datos que faltan en este archivo se especifican mediante `-999` y `-999.00`. Especifique en R que +estos son valores nulos usando el argumento opcional `read.csv()`, donde `na.strings = c("-999", "-999.00")`. Esto evitará que sean graficados. + +1. Grafique la masa del adulto vs. la masa del recién nacido. Rotule los ejes de manera más clara que + meramente usando los nombres de las columnas. +2. Parece haber un patrón regular aquí, pero definitivamente no es + lineal. Veamos si transformar los datos a escala logarítmica lo aclara. Grafique masa adulta + vs. masa del recién nacido, con ambos ejes escalados logarítmicamente. Rotule los ejes. +3. Esto parece un patrón bastante regular, por lo que se pregunta si varía entre + entre grupos. Grafique la masa de adultos vs. la masa de recién nacidos, con ambos ejes escalados + logarítmicamente, y los puntos de datos coloreados por orden. Rotule los ejes. +4. Colorear los puntos fue útil, pero hay muchos puntos y es difícil ver lo que está pasando con todos los órdenes. Utilice `facet_wrap` para crear una subgráfica para cada orden. +5. Ahora visualicemos las relaciones entre las variables usando un modelo lineal simple. Cree una nueva gráfica como la grafica del ejercicio (4), pero usando `geom_smooth` para ajustar un modelo lineal a cada orden. Puede hacer esto usando el argumento opcional `method = "lm"` en `geom_smooth`. \ No newline at end of file diff --git a/Graphing-data-from-multiple-tables-R-es.md b/Graphing-data-from-multiple-tables-R-es.md new file mode 100644 index 000000000..d4a755ea1 --- /dev/null +++ b/Graphing-data-from-multiple-tables-R-es.md @@ -0,0 +1,20 @@ +--- +layout: exercise +topic: Graphing +title: Graphing Data From Multiple Tables +language: R + + +Un experimento en Kenia ha estado explorando la influencia de los grandes herbívoros en las plantas. + +Verifique si `ACACIA_DREPANOLOBIUM_SURVEY.txt` y `TREE_SURVEYS.txt` están en su espacio de trabajo. +Si no, descarga [`ACACIA_DREPANOLOBIUM_SURVEY.txt`](http://www.esapubs.org/archive/ecol/E095/064/ACACIA_DREPANOLOBIUM_SURVEY.txt) y [`TREE_SURVEYS.txt`](https://ndownloader.figshare .com/files/5629536) +Instale el paquete `readr` y use `read_tsv` para leer los datos usando los siguientes comandos: + +```r +library(readr) +acacia <- read.csv("ACACIA_DREPANOLOBIUM_SURVEY.txt", sep="\t", na.strings = c("dead")) +trees <- read_tsv("TREE_SURVEYS.txt") +``` + +Queremos comparar la relación entre circunferencia vs. altura en la acacia y con la relación entre circunferencia vs altura para para los árboles de la región. Estos datos se almacenan en dos tablas diferentes. Haga una gráfica con la relación entre 'CIRC' y 'HEIGHT' para los árboles como círculos grises en el fondo y la misma relación para la acacia como círculos rojos trazados encima de los círculos grises. Escale ambos ejes logarítmicamente. Incluye modelos lineales para ambos conjuntos de datos. Rotule de manera apropiada los ejes. \ No newline at end of file diff --git a/Graphing-mass-vs-metabolism-R-es.md b/Graphing-mass-vs-metabolism-R-es.md new file mode 100644 index 000000000..acad584ce --- /dev/null +++ b/Graphing-mass-vs-metabolism-R-es.md @@ -0,0 +1,36 @@ +--- +layout: exercise +topic: Graphing +title: Mass vs Metabolism +language: R +--- +La relación entre el tamaño corporal de un organismo y su índice metabólico es una de las áreas más estudiadas y aún más controversiales de la fisiología de organismos. Queremos graficar esta relación en el [Artiodactyla](http://en.wikipedia.org/wiki/Even-toed_ungulate) usando un subconjunto de datos de una amplia compilación de datos de tamaño corporal ([Savage et al. +2004](https://doi.org/10.1111/j.0269-8463.2004.00856.x)). Puede copiar y pegar este marco de datos en su programa: + +``` +size_mr_data <- data.frame( + body_mass = c(32000, 37800, 347000, 4200, 196500, 100000, + 4290, 32000, 65000, 69125, 9600, 133300, 150000, 407000, + 115000, 67000,325000, 21500, 58588, 65320, 85000, 135000, + 20500, 1613, 1618), + metabolic_rate = c(49.984, 51.981, 306.770, 10.075, 230.073, + 148.949, 11.966, 46.414, 123.287, 106.663, 20.619, 180.150, + 200.830, 224.779, 148.940, 112.430, 286.847, 46.347, + 142.863, 106.670, 119.660, 104.150, 33.165, 4.900, 4.865), + family = c("Antilocapridae", "Antilocapridae", "Bovidae", + "Bovidae", "Bovidae", "Bovidae", "Bovidae", "Bovidae", + "Bovidae", "Bovidae", "Bovidae", "Bovidae", "Bovidae", + "Camelidae", "Camelidae", "Canidae", "Cervidae", + "Cervidae", "Cervidae", "Cervidae", "Cervidae", "Suidae", + "Tayassuidae", "Tragulidae", "Tragulidae")) +``` + +Haga las siguientes gráficas y rotule los ejes apropiadamente. + +1. Una gráfica de masa corporal vs. indice metabólico +2. Una gráfica de la masa corporal vs. indice metabólico con ejes escalados como log10 + (esto estira el eje, pero mantiene los números en la escala original), y + el tamaño de punto 3. +3. La misma gráfica que (2), pero con las diferentes familias indicadas por color. +4. La misma gráfica que (2), pero con las diferentes familias, cada una en su propia + subgráfica. \ No newline at end of file From 2628c8e0d81012a05115d700efee35fb5a64994b Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Mon, 7 Feb 2022 10:51:27 -0500 Subject: [PATCH 44/52] Moving to right folder --- .../Graphing-acacia-ants-R-es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename Graphing-acacia-ants-R-es.md => exercises-es/Graphing-acacia-ants-R-es.md (97%) diff --git a/Graphing-acacia-ants-R-es.md b/exercises-es/Graphing-acacia-ants-R-es.md similarity index 97% rename from Graphing-acacia-ants-R-es.md rename to exercises-es/Graphing-acacia-ants-R-es.md index 273968f70..55eebb03e 100644 --- a/Graphing-acacia-ants-R-es.md +++ b/exercises-es/Graphing-acacia-ants-R-es.md @@ -20,4 +20,4 @@ acacia <- read.csv("ACACIA_DREPANOLOBIUM_SURVEY.txt", sep="\t", na.strings = c(" 2. Haga la misma gráfica que (1), pero con ambos ejes en escala logarítmica (usando `scale_x_log10` y `scale_y_log10`). 3. La misma gráfica que (1), pero con puntos coloreados según la columna "HORMIGA" (la especie de hormiga simbionte que vive con la acacia) 4. La misma gráfica que (3)), pero en lugar de diferentes colores muestre diferentes especies de hormigas (valores de `ANT`), cada una en una subgráfica separada. -5. La misma gráfica que (4) pero agregue un modelo simple de los datos con `geom_smooth`. \ No newline at end of file +5. La misma gráfica que (4) pero agregue un modelo simple de los datos con `geom_smooth`. From 7b0441aafddc58e671430caff6b39b7a1a755e48 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Mon, 7 Feb 2022 10:55:41 -0500 Subject: [PATCH 45/52] Moving to right folder --- .../Graphing-acacia-ants-data-manip-R-es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename Graphing-acacia-ants-data-manip-R-es.md => exercises-es/Graphing-acacia-ants-data-manip-R-es.md (98%) diff --git a/Graphing-acacia-ants-data-manip-R-es.md b/exercises-es/Graphing-acacia-ants-data-manip-R-es.md similarity index 98% rename from Graphing-acacia-ants-data-manip-R-es.md rename to exercises-es/Graphing-acacia-ants-data-manip-R-es.md index 7e2fabb51..013295782 100644 --- a/Graphing-acacia-ants-data-manip-R-es.md +++ b/exercises-es/Graphing-acacia-ants-data-manip-R-es.md @@ -30,4 +30,4 @@ trees <- read_tsv("TREE_SURVEYS.txt") 'SPECIES', y una columna de 'abundance' que tiene el número de individuos en cada especie en cada año. Imprima este marco de datos. 5. Usando los datos que generó el marco de datos en (4), haga una gráfica de líneas con puntos (usando `geom_line` además de `geom_point`) con `YEAR` en el eje de X y `abundance` en el eje de Y con una subgráfica por especie. Para que pueda ver claramente cada tendencia, deje que la escala para - el eje y varíe entre gráficas agregando `scales = "free_y"` como un argumento opcional a `facet_wrap`. \ No newline at end of file + el eje y varíe entre gráficas agregando `scales = "free_y"` como un argumento opcional a `facet_wrap`. From 180b0124217675c19c9fbfb8c05c8ebd8688622a Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Mon, 7 Feb 2022 10:57:39 -0500 Subject: [PATCH 46/52] Moving to right folder --- .../Graphing-acacia-ants-histograms-R-es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename Graphing-acacia-ants-histograms-R-es.md => exercises-es/Graphing-acacia-ants-histograms-R-es.md (98%) diff --git a/Graphing-acacia-ants-histograms-R-es.md b/exercises-es/Graphing-acacia-ants-histograms-R-es.md similarity index 98% rename from Graphing-acacia-ants-histograms-R-es.md rename to exercises-es/Graphing-acacia-ants-histograms-R-es.md index 8dfae75de..b3fdedaf7 100644 --- a/Graphing-acacia-ants-histograms-R-es.md +++ b/exercises-es/Graphing-acacia-ants-histograms-R-es.md @@ -24,4 +24,4 @@ acacia <- read.csv("data/ACACIA_DREPANOLOBIUM_SURVEY.txt", sep="\t", na.strings deberá hacerlos transparentes con el argumento opcional alfa = 0.3. Establezca el color para `AXIS1` en "red" y `AXIS2` en "black" usando el argumento `fill`. Etiquete el eje x como "Canopy Diameter(m)" y el eje y como "Number of Acacia". 4. Use `facet_wrap()` para hacer la misma gráfica que (3) pero con una subgráfica para cada - tratamiento. Establezca el número de intervalos (bins) en el histograma como 10. \ No newline at end of file + tratamiento. Establezca el número de intervalos (bins) en el histograma como 10. From 9d209488ff4aca70cfa954d8fd881c72d509fa1b Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Mon, 7 Feb 2022 10:58:09 -0500 Subject: [PATCH 47/52] Moving to right folder --- .../Graphing-adult-vs-newborn-size-R-es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename Graphing-adult-vs-newborn-size-R-es.md => exercises-es/Graphing-adult-vs-newborn-size-R-es.md (98%) diff --git a/Graphing-adult-vs-newborn-size-R-es.md b/exercises-es/Graphing-adult-vs-newborn-size-R-es.md similarity index 98% rename from Graphing-adult-vs-newborn-size-R-es.md rename to exercises-es/Graphing-adult-vs-newborn-size-R-es.md index d36bcda42..64ef19ccd 100644 --- a/Graphing-adult-vs-newborn-size-R-es.md +++ b/exercises-es/Graphing-adult-vs-newborn-size-R-es.md @@ -26,4 +26,4 @@ estos son valores nulos usando el argumento opcional `read.csv()`, donde `na.str entre grupos. Grafique la masa de adultos vs. la masa de recién nacidos, con ambos ejes escalados logarítmicamente, y los puntos de datos coloreados por orden. Rotule los ejes. 4. Colorear los puntos fue útil, pero hay muchos puntos y es difícil ver lo que está pasando con todos los órdenes. Utilice `facet_wrap` para crear una subgráfica para cada orden. -5. Ahora visualicemos las relaciones entre las variables usando un modelo lineal simple. Cree una nueva gráfica como la grafica del ejercicio (4), pero usando `geom_smooth` para ajustar un modelo lineal a cada orden. Puede hacer esto usando el argumento opcional `method = "lm"` en `geom_smooth`. \ No newline at end of file +5. Ahora visualicemos las relaciones entre las variables usando un modelo lineal simple. Cree una nueva gráfica como la grafica del ejercicio (4), pero usando `geom_smooth` para ajustar un modelo lineal a cada orden. Puede hacer esto usando el argumento opcional `method = "lm"` en `geom_smooth`. From 890c6a050d6949f3a3eee580fc5ac28c2f9ffeca Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Mon, 7 Feb 2022 10:58:37 -0500 Subject: [PATCH 48/52] Moving to right folder --- .../Graphing-data-from-multiple-tables-R-es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename Graphing-data-from-multiple-tables-R-es.md => exercises-es/Graphing-data-from-multiple-tables-R-es.md (96%) diff --git a/Graphing-data-from-multiple-tables-R-es.md b/exercises-es/Graphing-data-from-multiple-tables-R-es.md similarity index 96% rename from Graphing-data-from-multiple-tables-R-es.md rename to exercises-es/Graphing-data-from-multiple-tables-R-es.md index d4a755ea1..8ea5ed98c 100644 --- a/Graphing-data-from-multiple-tables-R-es.md +++ b/exercises-es/Graphing-data-from-multiple-tables-R-es.md @@ -17,4 +17,4 @@ acacia <- read.csv("ACACIA_DREPANOLOBIUM_SURVEY.txt", sep="\t", na.strings = c(" trees <- read_tsv("TREE_SURVEYS.txt") ``` -Queremos comparar la relación entre circunferencia vs. altura en la acacia y con la relación entre circunferencia vs altura para para los árboles de la región. Estos datos se almacenan en dos tablas diferentes. Haga una gráfica con la relación entre 'CIRC' y 'HEIGHT' para los árboles como círculos grises en el fondo y la misma relación para la acacia como círculos rojos trazados encima de los círculos grises. Escale ambos ejes logarítmicamente. Incluye modelos lineales para ambos conjuntos de datos. Rotule de manera apropiada los ejes. \ No newline at end of file +Queremos comparar la relación entre circunferencia vs. altura en la acacia y con la relación entre circunferencia vs altura para para los árboles de la región. Estos datos se almacenan en dos tablas diferentes. Haga una gráfica con la relación entre 'CIRC' y 'HEIGHT' para los árboles como círculos grises en el fondo y la misma relación para la acacia como círculos rojos trazados encima de los círculos grises. Escale ambos ejes logarítmicamente. Incluye modelos lineales para ambos conjuntos de datos. Rotule de manera apropiada los ejes. From 01d0cc7d403eccae3520b5945530c9f7eb76b4b8 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Mon, 7 Feb 2022 10:59:27 -0500 Subject: [PATCH 49/52] Moving to right folder --- .../Graphing-mass-vs-metabolism-R-es.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename Graphing-mass-vs-metabolism-R-es.md => exercises-es/Graphing-mass-vs-metabolism-R-es.md (99%) diff --git a/Graphing-mass-vs-metabolism-R-es.md b/exercises-es/Graphing-mass-vs-metabolism-R-es.md similarity index 99% rename from Graphing-mass-vs-metabolism-R-es.md rename to exercises-es/Graphing-mass-vs-metabolism-R-es.md index acad584ce..936cc1625 100644 --- a/Graphing-mass-vs-metabolism-R-es.md +++ b/exercises-es/Graphing-mass-vs-metabolism-R-es.md @@ -33,4 +33,4 @@ Haga las siguientes gráficas y rotule los ejes apropiadamente. el tamaño de punto 3. 3. La misma gráfica que (2), pero con las diferentes familias indicadas por color. 4. La misma gráfica que (2), pero con las diferentes familias, cada una en su propia - subgráfica. \ No newline at end of file + subgráfica. From 14d804f356f17806ea28087709db13fa4b82e1a8 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz <40121477+garezana@users.noreply.github.com> Date: Mon, 7 Feb 2022 11:07:15 -0500 Subject: [PATCH 50/52] r-aggregation-joins From 45300016e812d8d3f6e2fed8ee86a9a4b814763d Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz Date: Mon, 7 Feb 2022 17:56:32 -0500 Subject: [PATCH 51/52] exercise es files from .txt to .md and added yaml metadata file --- exercises-es/.DS_Store | Bin 0 -> 14340 bytes ...code-R-es.txt => Dplyr-fix-the-code-R-es.md} | 6 ++++++ ...=> Dplyr-shrub-volume-aggregation-R-es 2.md} | 6 ++++++ ...R-es.txt => Dplyr-shrub-volume-join-R-es.md} | 6 ++++++ ...txt => Functions-built-in-functions-R-es.md} | 0 ...xt => Functions-combining-functions-R-es.md} | 0 ....txt => Functions-default-arguments-R-es.md} | 0 ...loop-R-es.txt => Functions-for-loop-R-es.md} | 0 ...a-R-es.txt => Functions-string-data-R-es.md} | 0 ...-es.txt => Functions-use-and-modify-R-es.md} | 0 ....txt => Functions-writing-functions-R-es.md} | 0 .../{Knitr-BBS-R-es.txt => Knitr-BBS-R-es.md} | 0 ...R-es.txt => Portal-data-aggregation-R-es.md} | 6 ++++++ exercises-es/Portal-data-challenge-R-es.txt | 5 ----- ...joins-R-es.txt => Portal-data-joins-R-es.md} | 6 ++++++ ...> building-data-frames-from-vectors-R-es.md} | 6 ++++++ ...extracting-vectors-from-data-frames-R-es.md} | 7 +++++++ 17 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 exercises-es/.DS_Store rename exercises-es/{Dplyr-fix-the-code-R-es.txt => Dplyr-fix-the-code-R-es.md} (92%) rename exercises-es/{Dplyr-shrub-volume-aggregation-R-es.txt => Dplyr-shrub-volume-aggregation-R-es 2.md} (91%) rename exercises-es/{Dplyr-shrub-volume-join-R-es.txt => Dplyr-shrub-volume-join-R-es.md} (93%) rename exercises-es/{Functions-built-in-functions-R-es.txt => Functions-built-in-functions-R-es.md} (100%) rename exercises-es/{Functions-combining-functions-R-es.txt => Functions-combining-functions-R-es.md} (100%) rename exercises-es/{Functions-default-arguments-R-es.txt => Functions-default-arguments-R-es.md} (100%) rename exercises-es/{Functions-for-loop-R-es.txt => Functions-for-loop-R-es.md} (100%) rename exercises-es/{Functions-string-data-R-es.txt => Functions-string-data-R-es.md} (100%) rename exercises-es/{Functions-use-and-modify-R-es.txt => Functions-use-and-modify-R-es.md} (100%) rename exercises-es/{Functions-writing-functions-R-es.txt => Functions-writing-functions-R-es.md} (100%) rename exercises-es/{Knitr-BBS-R-es.txt => Knitr-BBS-R-es.md} (100%) rename exercises-es/{Portal-data-aggregation-R-es.txt => Portal-data-aggregation-R-es.md} (88%) delete mode 100644 exercises-es/Portal-data-challenge-R-es.txt rename exercises-es/{Portal-data-joins-R-es.txt => Portal-data-joins-R-es.md} (92%) rename exercises-es/{building-data-frames-from-vectors-R-es.txt => building-data-frames-from-vectors-R-es.md} (86%) rename exercises-es/{extracting-vectors-from-data-frames-R-es.txt => extracting-vectors-from-data-frames-R-es.md} (77%) diff --git a/exercises-es/.DS_Store b/exercises-es/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..409009234ee1e9ca33ff1f183e834e122fdb5b7c GIT binary patch literal 14340 zcmeHNL2nyH6n>iqsZvo@jtNQYB&BWIZk56TPACm22vH;;h$F&@lQhMNja?@x2b3EJ zBz^)v0saX;g*z9@_r151ow3)mUbpI@T}SKLtiA7>`R03X-W#uoBpZX)eUUX0xrl@9 zmACQst4M>b_u}U~MqU?iCBgA24xC>RIgqE)lTISTIIf}L-0 z>`Gtm$)U79Z+CXK+nsHE8&Ju=A~WAV*O!R9Di84KJ$Du7@8Zfn{(7*pFHQ9CKsrE5 z@mc+<8K@bk8K@bk8F&*J;M$AV#Y@)K?==H812qHZ3@|=4aIjs^+B0i4bl{CCJU?d& zuP>Y9@k`wOBkn%JE=`L5KSuwlK{s=`CJ&&URA-mFIlDTSM>s1{ zj%w4#yeV-^zYi&T(*;&f)kJ1X(5TZ3AA35zQ-an~T@r`>*314Qw+_|qTgAKsN)1q# zrb3M%P?-V3-4X=qy(v_njjVlOPg)S_>>G1hV`i^4sOf%~+_;A$5tiSojz71*B}YyS!OVq_`tS?(wY7RNKqSjSoJ zqK{o|Elx$4)_L^#7~fytdc-2cnY7B4Vd<&Ky>9ykhd_t z=fyI&l6a!3`Q1~^UD)SuBh1a3=%dYAS9{w(k6ZK|Mrvb+D?V|0=t&D_6Rf|gEFX6j zir9fgyPK=J<($S7t#9Ls%{cpESwV%!$+c?MM_iC^VX>vE&1YsuBQfVa1qbx#GNn>c zzTI1ecA0yU#g4`^%WIf-axCPqe~!o58qZh6D^z8^%|-bReRFvu+4k!I zKc_5-qN=a|Jbk4FmJh%Sa{^*eQ7-SxD+K1{)Ib$v#x5Uup#pM*E7g&2w=rV(NWG`6 zDz(U0q2C&zeEZi&?DyesJz#7rBOP$V9J?YvT;BqIMytX4%A3Z(G6sAVK3kkQa&=@r z%a!o~qJ!0Ai~x*d1;5JE`zQSU-M3v50l9VrRu{(hxUZfuVQ=Z#f!(=MyCprPF9#M^ z;j;t8x3(AM^2omjueRL?a?1a>-c^cv^y&cdmV5%6+{4&WPlJ_fJ z<;uXiz~$(}nQgvm<-Q)SYcW*%fsc9}PZKiZFhs6j=54lyG7qu*davMH5gb*!kMmw3 z4&(eGe47|O`va8uLX_d(Z=#WraW}BJ zSZLFBG8{YkoJZJKZT;hEt5IlqfVrk0ySN+1mY992$hTk2`H4pHT**~umJ!oOS(eYB z7iJ&!d&ILW?=aSFr)rv*=wsXj20gHg+{STEf8@ax$=I@AKk~UCw%ebK@TMx77LEO} z9Fu#_%wkJ4tNQZM7AlM_G773Ie-apZ-Hk%Kt#e;H)}AsmK7p@u_2Ax5{)<5j3rY*H zZWmzX^N`2J(VY$Evw1!d!DQ?TFjopNIpelVW}{;qF$Bx{`&w7TP!P8Q6cAazUTX&4 zveB(wLi=$1^Z&0k2le1;2HtcAlG)9z%?+@SjA4S$+BIv}8NSM(4d9}awg{#^EQ(YpSB&N-3kb|AtWy{`XRzqlvN NCdr3=CBD-7|9?oEI6MFV literal 0 HcmV?d00001 diff --git a/exercises-es/Dplyr-fix-the-code-R-es.txt b/exercises-es/Dplyr-fix-the-code-R-es.md similarity index 92% rename from exercises-es/Dplyr-fix-the-code-R-es.txt rename to exercises-es/Dplyr-fix-the-code-R-es.md index 813807acb..848227870 100644 --- a/exercises-es/Dplyr-fix-the-code-R-es.txt +++ b/exercises-es/Dplyr-fix-the-code-R-es.md @@ -1,3 +1,9 @@ +--- +layout: exercise +topic: dplyr +title: Fix the Code +language: R +--- Este ejercicio es una continuación de [Shrub Volume Aggregation]({{ site.baseurl }}/exercises/Dplyr-shrub-volume-aggregation-R). Si aún no tiene [shrub volume data]({{ site.baseurl }}/data/shrub-volume-data.csv) en su directorio de trabajo, descárguelo. diff --git a/exercises-es/Dplyr-shrub-volume-aggregation-R-es.txt b/exercises-es/Dplyr-shrub-volume-aggregation-R-es 2.md similarity index 91% rename from exercises-es/Dplyr-shrub-volume-aggregation-R-es.txt rename to exercises-es/Dplyr-shrub-volume-aggregation-R-es 2.md index 6e0392d2f..ae16c2108 100644 --- a/exercises-es/Dplyr-shrub-volume-aggregation-R-es.txt +++ b/exercises-es/Dplyr-shrub-volume-aggregation-R-es 2.md @@ -1,3 +1,9 @@ +--- +layout: exercise +topic: dplyr +title: Shrub Volume Aggregation +language: R +--- Este ejercicio es una continuación de [Shrub Volume Data Basics]({{ site.baseurl }}/exercises/Dplyr-shrub-volume-data-basics-R). La Dra. Granger quiere un resumen de datos tanto para las plantas en su sitio de estudio como para sus experimentos.Verifique si el archivo `shrub-volume-data.csv` está en su espacio de trabajo (es posible que su instructor ya lo haya agregado). diff --git a/exercises-es/Dplyr-shrub-volume-join-R-es.txt b/exercises-es/Dplyr-shrub-volume-join-R-es.md similarity index 93% rename from exercises-es/Dplyr-shrub-volume-join-R-es.txt rename to exercises-es/Dplyr-shrub-volume-join-R-es.md index f8ec1aece..4381a04ba 100644 --- a/exercises-es/Dplyr-shrub-volume-join-R-es.txt +++ b/exercises-es/Dplyr-shrub-volume-join-R-es.md @@ -1,3 +1,9 @@ +--- +layout: exercise +topic: dplyr +title: Shrub Volume Join +language: R +--- En adición a la tabla de datos principal de dimensiones de arbustos, la Dra. Granger tiene dos tablas de datos adicionales. La primera describe la manipulación de cada experimento. La segunda contiene información sobre los diferentes sitios de estudio. diff --git a/exercises-es/Functions-built-in-functions-R-es.txt b/exercises-es/Functions-built-in-functions-R-es.md similarity index 100% rename from exercises-es/Functions-built-in-functions-R-es.txt rename to exercises-es/Functions-built-in-functions-R-es.md diff --git a/exercises-es/Functions-combining-functions-R-es.txt b/exercises-es/Functions-combining-functions-R-es.md similarity index 100% rename from exercises-es/Functions-combining-functions-R-es.txt rename to exercises-es/Functions-combining-functions-R-es.md diff --git a/exercises-es/Functions-default-arguments-R-es.txt b/exercises-es/Functions-default-arguments-R-es.md similarity index 100% rename from exercises-es/Functions-default-arguments-R-es.txt rename to exercises-es/Functions-default-arguments-R-es.md diff --git a/exercises-es/Functions-for-loop-R-es.txt b/exercises-es/Functions-for-loop-R-es.md similarity index 100% rename from exercises-es/Functions-for-loop-R-es.txt rename to exercises-es/Functions-for-loop-R-es.md diff --git a/exercises-es/Functions-string-data-R-es.txt b/exercises-es/Functions-string-data-R-es.md similarity index 100% rename from exercises-es/Functions-string-data-R-es.txt rename to exercises-es/Functions-string-data-R-es.md diff --git a/exercises-es/Functions-use-and-modify-R-es.txt b/exercises-es/Functions-use-and-modify-R-es.md similarity index 100% rename from exercises-es/Functions-use-and-modify-R-es.txt rename to exercises-es/Functions-use-and-modify-R-es.md diff --git a/exercises-es/Functions-writing-functions-R-es.txt b/exercises-es/Functions-writing-functions-R-es.md similarity index 100% rename from exercises-es/Functions-writing-functions-R-es.txt rename to exercises-es/Functions-writing-functions-R-es.md diff --git a/exercises-es/Knitr-BBS-R-es.txt b/exercises-es/Knitr-BBS-R-es.md similarity index 100% rename from exercises-es/Knitr-BBS-R-es.txt rename to exercises-es/Knitr-BBS-R-es.md diff --git a/exercises-es/Portal-data-aggregation-R-es.txt b/exercises-es/Portal-data-aggregation-R-es.md similarity index 88% rename from exercises-es/Portal-data-aggregation-R-es.txt rename to exercises-es/Portal-data-aggregation-R-es.md index 788d5b119..a75e4c01b 100644 --- a/exercises-es/Portal-data-aggregation-R-es.txt +++ b/exercises-es/Portal-data-aggregation-R-es.md @@ -1,3 +1,9 @@ +--- +layout: exercise +topic: dplyr +title: Portal Data Aggregation +language: R +--- Descargue una copia de la [Tabla de datos de estudios de la base de datos educativa de Portal] (https://ndownloader.figshare.com/files/2292172) e impórtela a R usando la función `read.csv ()`. diff --git a/exercises-es/Portal-data-challenge-R-es.txt b/exercises-es/Portal-data-challenge-R-es.txt deleted file mode 100644 index 2b16e2a97..000000000 --- a/exercises-es/Portal-data-challenge-R-es.txt +++ /dev/null @@ -1,5 +0,0 @@ -Cree un pipeline para manipular los datos en la tabla `surveys` de Portal que produzca una tabla de datos para las tres especies de Dipodomys ("DM", "DO", "DS"). -ID de especie debe presentarse en minúsculas, no en mayúsculas. -La tabla debe contener información sobre la fecha, identificación de especie, peso y longitud del hindfoot (retropié). -Los datos no deben incluir valores nulos para el peso o para la longitud del retropié. -La tabla debe estar ordenada primero por especies (de modo que cada especie esté agrupada) y luego por peso, con los pesos más grandes en la parte superior. \ No newline at end of file diff --git a/exercises-es/Portal-data-joins-R-es.txt b/exercises-es/Portal-data-joins-R-es.md similarity index 92% rename from exercises-es/Portal-data-joins-R-es.txt rename to exercises-es/Portal-data-joins-R-es.md index 4ac6e89a3..31505ed10 100644 --- a/exercises-es/Portal-data-joins-R-es.txt +++ b/exercises-es/Portal-data-joins-R-es.md @@ -1,3 +1,9 @@ +--- +layout: exercise +topic: dplyr +title: Portal Data Joins +language: R +--- Si `survey.csv`,` species.csv` y `plots.csv` no están disponibles en su espacio de trabajo, descárguelos: * [`survey.csv`] (https://ndownloader.figshare.com/files/2292172) diff --git a/exercises-es/building-data-frames-from-vectors-R-es.txt b/exercises-es/building-data-frames-from-vectors-R-es.md similarity index 86% rename from exercises-es/building-data-frames-from-vectors-R-es.txt rename to exercises-es/building-data-frames-from-vectors-R-es.md index aa4a8ae1c..13936666d 100644 --- a/exercises-es/building-data-frames-from-vectors-R-es.txt +++ b/exercises-es/building-data-frames-from-vectors-R-es.md @@ -1,3 +1,9 @@ +--- +layout: exercise +topic: dplyr +title: Building data frames from vectors +language: R +--- Los siguientes vectores contienen datos individuales sobre el largo, ancho y alto de 10 tejos. [* Taxus baccata *] (https://es.wikipedia.org/wiki/Taxus_baccata): ``` diff --git a/exercises-es/extracting-vectors-from-data-frames-R-es.txt b/exercises-es/extracting-vectors-from-data-frames-R-es.md similarity index 77% rename from exercises-es/extracting-vectors-from-data-frames-R-es.txt rename to exercises-es/extracting-vectors-from-data-frames-R-es.md index bde69cc60..f9b6a4137 100644 --- a/exercises-es/extracting-vectors-from-data-frames-R-es.txt +++ b/exercises-es/extracting-vectors-from-data-frames-R-es.md @@ -1,3 +1,10 @@ + +--- +layout: exercise +topic: dplyr +title: Extracting vectors from data frames +language: R +--- Usando la tabla de `surveys` (estudios) de datos de Portal: 1. Use `$` para extraer la columna de `weight` en un vector From afd6bc23688eb8aeb086005f851c1e4b1e24cfa9 Mon Sep 17 00:00:00 2001 From: Virnaliz Cruz Date: Mon, 7 Feb 2022 18:08:01 -0500 Subject: [PATCH 52/52] add DS_store to gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index e36ecaff3..29fe50933 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ Gemfile.lock #* *.Rhistory .jekyll-metadata -node_modules/ \ No newline at end of file +node_modules/ +.DS_store