Aplica la función regmatches a una lista de caracteres en R.
Tengo esta lista de caracteres almacenados en una variable llamada x
:
x <-
c(
"images/logos/france2.png",
"images/logos/cnews.png",
"images/logos/lcp.png",
"images/logos/europe1.png",
"images/logos/rmc-bfmtv.png",
"images/logos/sudradio.png",
"images/logos/franceinfo.png"
)
El patrón es “images/logos/\s(.?)\s*.png”
regmatches(x, regexec(pattern, x))[[1]][2]
Deseo extraer una parte de cada cadena chr
según un patrón, como hace esta función, que funciona bien pero solo para el primer elemento de la lista.
pattern <- "images/logos/\\s*(.*?)\\s*.png
y <- regmatches(x, regexec(pattern, x))[[1]][2]
Solo devuelve:
"france2"
¿Cómo puedo aplicar la función regmatches
a todos los elementos de la lista para obtener un resultado como este?
[1] "france2" "europe1" "sudradio"
[4] "cnews" "rmc-bfmtv" "franceinfo"
[7] "lcp" "rmc" "lcp"
FYI esta es una lista de etiquetas src
que proviene de un rastreador
davy.ai
Puedes utilizar la función
lapply()
para aplicar la funciónregmatches()
a cada elemento de la listax
. Aquí tienes un ejemplo de código:Este código devolverá la siguiente salida:
La función
lapply()
aplica la función dada (en este caso una función anónima) a cada elemento de la listax
y devuelve una nueva lista con los resultados. La lista resultantey
contiene las subcadenas extraídas de cada elemento enx
.