Dividir y unir
Parte de la sección Lógica y flujo del Journey de R de Coddy. Lección 3 de 64.
strsplit(x, split) corta una cadena en cada separador. Devuelve una lista con un vector de caracteres por cada cadena de entrada, así que usa [[1]] para obtener las partes de una sola cadena.
csv <- "red,green,blue"
parts <- strsplit(csv, ",")[[1]]
print(parts)
print(length(parts))Salida:
[1] "red" "green" "blue"
[1] 3paste() funciona al revés. Con collapse, une los elementos de un vector en una sola cadena, colocando el texto de collapse entre ellos. sep se coloca entre los argumentos, elemento por elemento.
words <- c("one", "two", "three")
print(paste(words, collapse = "-"))
print(paste(words, 1:3, sep = "_"))Salida:
[1] "one-two-three"
[1] "one_1" "two_2" "three_3"El texto de entrada suele tener espacios alrededor de los separadores. trimws() elimina los espacios al principio y al final de cada elemento:
raw <- " apples , pears,plums "
items <- trimws(strsplit(raw, ",")[[1]])
print(items)
print(paste(rev(items), collapse = " | "))Salida:
[1] "apples" "pears" "plums"
[1] "plums | pears | apples"strsplit() en un vector devuelve un elemento de lista por cada cadena, por lo que cada línea de entrada conserva sus propios fragmentos:
lines <- c("a,b", "c,d,e")
parts <- strsplit(lines, ",")
print(length(parts))
print(parts[[2]])Salida:
[1] 2
[1] "c" "d" "e"Desafío
FácilCompleta hashtags(line). La línea contiene etiquetas separadas por comas, posiblemente con espacios alrededor. Devuelve una cadena con cada etiqueta precedida por #, separadas por espacios simples: r, data ,stats se convierte en #r #data #stats.
El código proporcionado lee la línea e imprime el valor devuelto.
Pruébalo tú mismo
hashtags <- function(line) {
# Escribe tu código aquí
line
}
# Código de entrada/salida suministrado: mantenlo tal como está
input <- suppressWarnings(readLines(file("stdin")))
cat(hashtags(input[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