sustraer - strsplit r
R: divisiĆ³n de una cadena entre dos caracteres usando strsplit() (1)
1) strsplit con matrix Prueba esto:
> matrix(strsplit(s, "[;=]")[[1]], 2)[2,]
[1] "MIMAT0027618" "MIMAT0027618" "hsa-miR-6859-5p" "MI0022705"
2) strsplit con gsub o este uso de strsplit
con gsub
:
> strsplit(gsub("[^=;]+=", "", s), ";")[[1]]
[1] "MIMAT0027618" "MIMAT0027618" "hsa-miR-6859-5p" "MI0022705"
3) strsplit con sub o este uso de strsplit
con sub
:
> sub(".*=", "", strsplit(s, ";")[[1]])
[1] "MIMAT0027618" "MIMAT0027618" "hsa-miR-6859-5p" "MI0022705"
4) strapplyc o esto que extrae signos consecutivos que no son punto y coma después de signos iguales:
> library(gsubfn)
> strapplyc(s, "=([^;]+)", simplify = unlist)
[1] "MIMAT0027618" "MIMAT0027618" "hsa-miR-6859-5p" "MI0022705"
AGREGADO soluciones de strplit
adicionales.
Digamos que tengo la siguiente cadena:
s <- "ID=MIMAT0027618;Alias=MIMAT0027618;Name=hsa-miR-6859-5p;Derives_from=MI0022705"
Me gustaría recuperar las cadenas entre ";"
y "="
para obtener el siguiente resultado:
[1] "MIMAT0027618" "MIMAT0027618" "hsa-miR-6859-5p" "MI0022705"
¿Puedo usar strsplit()
con más de un elemento dividido?