separar rápido relleno numeros nombres nombre los izquierda funciones derecha con compuestos como apellidos r split substring filenames

rápido - separar nombres y apellidos en excel formula



Dividir un nombre de archivo en nombre, extensión (3)

Tengo el nombre de un archivo como este: name1.csv y me gustaría extraer dos subcadenas de esta cadena. Una que almacena el name1 en una variable y otra que almacena la extensión, csv , sin el punto en otra variable.

He estado buscando si hay una función como indexOf de Java que permite hacer ese tipo de manipulación, pero no he encontrado nada en absoluto.

¿Alguna ayuda?


Usando expresiones regulares, puedes hacer esto por ejemplo

regmatches(x=''name1.csv'',gregexpr(''[.]'',''name1.csv''),invert=TRUE) [[1]] [1] "name1" "csv"



Use strsplit :

R> strsplit("name1.csv", "//.")[[1]] [1] "name1" "csv" R>

Tenga en cuenta que a) necesita escapar del punto (ya que es un metacarácter para expresiones regulares) yb) lidiar con el hecho de que strsplit() devuelve una lista de la cual típicamente solo el primer elemento es de interés.

Una solución más general implica expresiones regulares donde puede extraer las coincidencias.

Para el caso especial de nombres de archivos, también tiene:

R> library(tools) # unless already loaded, comes with base R R> file_ext("name1.csv") [1] "csv" R>

y

R> file_path_sans_ext("name1.csv") [1] "name1" R>

ya que estas son tareas comunes (cf basename en shell, etc.).