Valores únicos
Parte de la sección Lógica y flujo del Journey de R de Coddy. Lección 12 de 64.
R no tiene un tipo separado para conjuntos: un conjunto es un vector sin valores repetidos. unique() elimina las repeticiones y conserva la primera aparición de cada valor, en el orden original.
tags <- c("r", "stats", "r", "data", "stats")
print(unique(tags))
print(length(unique(tags)))Salida:
[1] "r" "stats" "data"
[1] 3duplicated() devuelve TRUE para cada valor que ya apareció antes en el vector. La primera aparición es FALSE:
ids <- c(7, 3, 7, 9, 3)
print(duplicated(ids))
print(ids[duplicated(ids)])Salida:
[1] FALSE FALSE TRUE FALSE TRUE
[1] 7 3Ambas funciones comparan valores exactos, por lo que "R" y "r" son diferentes. Normaliza el texto primero cuando las mayúsculas y minúsculas no deban importar:
langs <- c("R", "python", "r", "Python")
print(length(unique(langs)))
print(unique(tolower(langs)))Salida:
[1] 4
[1] "r" "python"unique() también funciona con números, y sort(unique(x)) muestra los valores distintos en orden creciente. sum(duplicated(x)) cuenta cuántos elementos están repetidos:
rolls <- c(4, 2, 6, 2, 4, 4)
print(sort(unique(rolls)))
print(sum(duplicated(rolls)))Salida:
[1] 2 4 6
[1] 3Desafío
FácilCompleta count_distinct(tags). Devuelve cuántas etiquetas diferentes hay ignorando las mayúsculas y minúsculas: R y r cuentan una vez.
El código proporcionado lee las etiquetas como una línea separada por comas e imprime el número devuelto.
Pruébalo tú mismo
count_distinct <- function(tags) {
# Escribe tu código aquí
0
}
# Código de entrada/salida suministrado: déjalo como está
input <- suppressWarnings(readLines(file("stdin")))
cat(count_distinct(strsplit(input[1], ",")[[1]]), sep = "\n")
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y flujo
1Cadenas a fondo
Subcadenas con substr()Formateo con sprintf()Dividir y unirBuscar cadenasReemplazar textoRepaso - Constructor de nombres de usuario4Matrices
Creación de matricesIndexación de matricesResúmenes de filas y columnasAritmética de matricesRepaso: tabla de asientos2Búsquedas clave-valor
Búsquedas en vectores con nombreComprobar clavesAñadir y eliminar clavesRecorrer nombresRepaso: panel bursátil5Proyecto - Libro de calificaciones
Añadir estudiantesRegistrar calificaciones3Conjuntos y conteo
Valores únicosOperaciones con conjuntosPruebas de pertenenciaConteo con table()Repaso: invitados al evento6Funciones como valores
Funciones anónimasPasar funcionesDevolver funcionesClausuras con estadoRepaso: reglas de descuento9Marcos de datos
Creación de marcos de datosColumnas y filasFiltrado de filasAdición y ordenaciónRepaso - Informe de ventas12Proyecto: Rastreador de gastos
Registro de gastosGasto totalPractica por tu cuenta: Compilador de R online