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 en sentido contrario. Con collapse, une los elementos de un vector en una sola cadena con el texto de collapse entre ellos. sep va 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, así que cada línea de entrada conserva sus propias partes:
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 individuales: 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 proporcionado: déjalo 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