Código
num_vector <- function(x) {
clase <- class(x)
largo <- length(x)
faltantes <- sum(is.na(x))
return(list(clase = clase, largo = largo, faltantes = faltantes))
}5 de noviembre de 2024
Cree una función llamada num_vector que reciba un vector y devuelva una lista que incluya:
class())NAs) contieneLos elementos de la lista deben tener los nombres clase, largo y faltantes, respectivamente.
num_vector con el siguiente vector: c(1, 2, 3, NA, 5, 6, 7, 8, 9, 10)$clase
[1] "numeric"
$largo
[1] 10
$faltantes
[1] 1
Cree una función llamada char_vector que reciba un vector de caracteres y devuelva una lista con tres elementos:
length(unique(x)))table(x))names(which.max(table(x))))Los elementos de la lista deben tener nombres.
char_vector con el siguiente vector: c("a", "b", "a", "b", "b", "c", "b")$unicos
[1] 3
$obs_por_categoria
x
a b c
2 4 1
$categoria_mas_frecuente
[1] "b"
check_vector que reciba un vector. Si el vector es numérico debe aplicar la función num_vector y si es de caracteres debe aplicar la función char_vector. Si el vector no es ni numérico ni de caracteres, la función debe imprimir un mensaje (print()) indicando “x no es numérico ni categórico” (pista: is.numeric() y is.character()).# opción 1 sin "else"
check_vector <- function(x) {
if(is.numeric(x)) {
return(num_vector(x))
}
if(is.character(x)) {
return(char_vector(x))
}
print("x no es numérico ni categórico")
}
# opción 2 con "else"
check_vector <- function(x) {
if(is.numeric(x)) {
return(num_vector(x))
} else if(is.character(x)) {
return(char_vector(x))
} else {
print("x no es numérico ni categórico")
}
}Evalue la función check_vector con los siguientes 3 vectores (uno a la vez):
c("a", "b", "a", "b", "b", "c", NA, "b")c(1, 2, 3, NA, 5, 6, 7, 8, 9, 10)c(FALSE, TRUE)$unicos
[1] 4
$obs_por_categoria
x
a b c
2 4 1
$categoria_mas_frecuente
[1] "b"
$clase
[1] "numeric"
$largo
[1] 10
$faltantes
[1] 1
[1] "x no es numérico ni categórico"