Skip to content

Commit bdc487d

Browse files
committed
02 - R
Agregué funciones creadas por el usuario
1 parent b5c03ca commit bdc487d

File tree

1 file changed

+115
-18
lines changed

1 file changed

+115
-18
lines changed

Roadmap/02 - FUNCIONES Y ALCANCE/r/Micromantic.R

Lines changed: 115 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,35 +10,104 @@
1010
# (y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades)
1111

1212

13-
#### Funciones según su comportamiento
13+
#### Funciones definidas por el usuario
1414

15-
### Funciones sin retorno
15+
# Simple
1616

17-
## Con parametros
17+
saludar <- function() {
18+
print("¡Hola, R!")
19+
}
1820

19-
rm(list = ls())
20-
# Al ser aplicada de esta manera, la función rm borra todos los objetos del environment
21+
saludar()
2122

23+
# Con retorno
2224

23-
## Sin parametros
25+
saludar_con_retorno <- function() {
26+
return("¡Hola, R!")
27+
}
2428

25-
graphics.off()
26-
# graphics.off cierra todos los dispositivos gráficos abiertos (por ejemplo, las visualizaciones en el panel Plots)
29+
print(saludar_con_retorno())
2730

28-
### Funciones con retorno
31+
saludo <- saludar_con_retorno()
2932

30-
## Con parametros
33+
saludo
3134

32-
sum(2, 2)
35+
# Con un argumento
3336

37+
saludar_con_argumento <- function(x) {
38+
cat("¡Hola, ", x,"!", sep = "")
39+
}
3440

35-
## Sin parametros
41+
saludar_con_argumento("Micromantic")
3642

37-
Sys.Date()
38-
# la función Sys.Date arroja la fecha actual en el formato "YYYY-MM-DD"
43+
# Con dos argumentos
44+
45+
saludar_con_argumentos <- function(x, y) {
46+
cat("¡", x, ", ", y, "!", sep = "")
47+
}
3948

49+
saludar_con_argumentos("Buenas", "Micromantic")
4050

41-
### Función dentro de otra función
51+
# Con un argumento por defecto
52+
53+
saludar_con_argumento_por_defecto <- function(x = "R") {
54+
cat("¡Hola, ", x,"!", sep = "")
55+
}
56+
57+
saludar_con_argumento("Micromantic")
58+
59+
# Con dos argumentos por defecto
60+
61+
saludar_con_argumentos_por_defecto <- function(x = "Hola" , y = "R") {
62+
cat("¡", x, ", ", y, "!", sep = "")
63+
}
64+
65+
saludar_con_argumentos("Buenas", "Micromantic")
66+
67+
# Con retorno de varios valores
68+
69+
saludar_con_multiple_retorno <- function() {
70+
71+
return(c("Hola", "R"))
72+
}
73+
74+
saludar_con_multiple_retorno()
75+
76+
saludo <- saludar_con_multiple_retorno()[1]
77+
lenguaje <- saludar_con_multiple_retorno()[2]
78+
79+
saludo
80+
lenguaje
81+
82+
# Con un número variable de argumentos
83+
84+
saludo_con_argumentos_variables <- function(...) {
85+
for (i in list(...)) {
86+
print(paste0("Hola, ", i))
87+
88+
}
89+
}
90+
91+
saludo_con_argumentos_variables("Carlos", "Daniel")
92+
93+
# Con un número variable de argumentos con palabras clave
94+
95+
saludo_con_argumentos_variables_clave <- function(...) {
96+
97+
claves <- list(...)
98+
for (clave in names(claves)) {
99+
cat("Hola,", "mi", clave, "es", claves[[clave]], "\n")
100+
}
101+
}
102+
103+
saludo_con_argumentos_variables_clave(
104+
nombre = "Daniel",
105+
lenguaje = "R",
106+
apodo = "Micromantic",
107+
edad = "30"
108+
)
109+
110+
# Función dentro de otra función
42111

43112
por_100 <- function(x) {
44113

@@ -56,6 +125,34 @@ por_100(x = 1)
56125
# esta funcion recibe un argumento, lo multiplica por 100 y luego usa una
57126
# función interna para multiplicar el resultado por 5
58127

128+
#### Funciones del lenguaje R
129+
130+
### Funciones sin retorno
131+
132+
## Con parametros
133+
134+
rm(list = ls())
135+
136+
# Al ser aplicada de esta manera, la función rm borra todos los objetos del environment
137+
138+
## Sin parametros
139+
140+
graphics.off()
141+
142+
# graphics.off cierra todos los dispositivos gráficos abiertos (por ejemplo, las visualizaciones en el panel Plots)
143+
144+
### Funciones con retorno
145+
146+
## Con parametros
147+
148+
sum(2, 2)
149+
150+
## Sin parametros
151+
152+
Sys.Date()
153+
154+
# la función Sys.Date arroja la fecha actual en el formato "YYYY-MM-DD"
155+
59156

60157
### Concepto de alcance LOCAL y GLOBAL
61158

@@ -96,13 +193,13 @@ por_100 <- function(x) {
96193
# Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda.
97194

98195

99-
vector_1_100 <- function(x, y) {
196+
imprimir_numeros <- function(x, y) {
100197
vector <- 1:100
101198
multiplos_3_5 <- c()
102199

103200
for (i in vector) {
104201
if(i %% 3 == 0 & i %% 5 == 0) {
105-
print(paste(x, y, sep = " "))
202+
print(paste0(x, y, sep = " "))
106203
} else if(i %% 3 == 0) {
107204
print(x)
108205
} else if(i %% 5 == 0) {
@@ -116,4 +213,4 @@ vector_1_100 <- function(x, y) {
116213
paste0("Hubo un total de ", length(multiplos_3_5), " números impresos en vez de textos.")
117214
}
118215

119-
vector_1_100("Hola", "R")
216+
imprimir_numeros("Fizz", "Buzz")

0 commit comments

Comments
 (0)