Crear una función llamada HolaMundo que imprima el texto “Hola mundo”
HolaMundo <- function(){
print('Hola mundo')
}
HolaMundo()
[1] "Hola mundo"
Crear una función que devuelva la sumatoria de los números enteros comprendidos entre 1 y un parámetro x a definir.
suma_enteros <- function(x){
sum(1:x)
}
suma_enteros(2)
[1] 3
suma_enteros(10)
[1] 55
library(tidyverse)
[30m── [1mAttaching packages[22m ──────────────────────────────────────────────────────────── tidyverse 1.2.1 ──[39m
[30m[32m✔[30m [34mggplot2[30m 3.2.1 [32m✔[30m [34mpurrr [30m 0.3.2
[32m✔[30m [34mtibble [30m 2.1.3 [32m✔[30m [34mdplyr [30m 0.8.3
[32m✔[30m [34mtidyr [30m 1.0.0 [32m✔[30m [34mstringr[30m 1.4.0
[32m✔[30m [34mreadr [30m 1.3.1 [32m✔[30m [34mforcats[30m 0.4.0[39m
[30m── [1mConflicts[22m ─────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
[31m✖[30m [34mdplyr[30m::[32mfilter()[30m masks [34mstats[30m::filter()
[31m✖[30m [34mpurrr[30m::[32mis_null()[30m masks [34mtestthat[30m::is_null()
[31m✖[30m [34mdplyr[30m::[32mlag()[30m masks [34mstats[30m::lag()
[31m✖[30m [34mdplyr[30m::[32mmatches()[30m masks [34mtidyr[30m::matches(), [34mtestthat[30m::matches()[39m
library(purrr)
Ej 1 Para cada columna de mtcars, calcular la media. Devolver una lista
mtcars %>%
map(mean)
$mpg
[1] 20.09062
$cyl
[1] 6.1875
$disp
[1] 230.7219
$hp
[1] 146.6875
$drat
[1] 3.596563
$wt
[1] 3.21725
$qsec
[1] 17.84875
$vs
[1] 0.4375
$am
[1] 0.40625
$gear
[1] 3.6875
$carb
[1] 2.8125
Ej 2 Hacer lo mismo que en 1, pero devolver un vector nombrado
mtcars %>%
map_dbl(mean)
mpg cyl disp hp drat wt qsec vs am
20.090625 6.187500 230.721875 146.687500 3.596563 3.217250 17.848750 0.437500 0.406250
gear carb
3.687500 2.812500
Ej 3 Calcular la media, pero podando el 5% de los valores más altos y bajos
mtcars %>%
map_dbl(function(x) mean(x,trim=0.05))
mpg cyl disp hp drat wt qsec vs
19.9533333 6.2000000 228.0000000 143.5666667 3.5800000 3.2005000 17.7920000 0.4333333
am gear carb
0.4000000 3.6666667 2.7000000
Ej 4 Dividir el dataset de por la variable cyl como una lista y calcular el numero de filas por elemento de la lista
mtcars %>%
group_split(cyl) %>%
map(nrow)
[[1]]
[1] 11
[[2]]
[1] 7
[[3]]
[1] 14
Ej 5 Para cada elemento de la lista de 4, calcular la media de cada columna. Devolver los resultados como un dataframe con un registro por cada elemento de la lista (osea, 3)
mtcars %>%
group_split(cyl) %>%
map_df(.,function(x) map_df(x,mean))