2011-08-25 13 views

Respuesta

36

puede utilizar grepl con expresión regular:

X[grepl("^m.*\\.log", X)] 
+1

Como Andrey pidió un patrón para que coincida con las cadenas * que terminan * en .log, creo que esto debería ser X [grepl ("^ m. * \\. Log $", X)] – jbaums

+0

Exactamente. Me lo perdí. Debería terminar con '$'. – kohske

19

Prueba esto:

grep("^m.*[.]log$", X, value = TRUE) 
## [1] "mama.log" "mentor.log" 

Una variación de esto es utilizar un pegote en lugar de una expresión regular:

grep(glob2rx("m*.log"), X, value = TRUE) 
## [1] "mama.log" "mentor.log" 
+1

No había oído hablar de glob2rx, ¡es genial! – rsmith54

-1

Uso de tuberías ...

library(tidyverse) 

c("mama.log", "papa.log", "mimo.png", "mentor.log") %>% 
.[grepl("^m.*\\.log$", .)] 
[1] "mama.log" "mentor.log" 
+1

Esto no agrega nada; es solo una sintaxis alternativa para la función provista en la respuesta de kohske. Las personas que saben cómo usar las tuberías ya deben saber cómo adaptar la sintaxis, y las personas que no saben usar las tuberías se confundirían con esta respuesta, ya que no ofrece ninguna explicación. – Gregor

+1

Pero incluso con una breve explicación de las tuberías, si alguien hace una pregunta "¿Cómo puedo encontrar el promedio de un vector' x' ", y alguien responde' mean (x) ',' x%>% mean' no es una respuesta diferente – Gregor

+0

entonces no necesitamos tuberías dplyr ... ¿verdad? – user3357059

Cuestiones relacionadas