str_detect sheet regular punct examples cheat r grep subset

sheet - ¿Cómo grep en R?



str_detect r (3)

Me gustaría elegir filas basadas en los subconjuntos de sus nombres, por ejemplo

Si tengo los siguientes datos:

data <- structure(c(91, 92, 108, 104, 87, 91, 91, 97, 81, 98), .Names = c("fee-", "fi", "fo-", "fum-", "foo-", "foo1234-", "123foo-", "fum-", "fum-", "fum-"))

¿Cómo selecciono las filas que coinciden con ''foo''?

el uso de grep () no funciona:

grep(''foo'', data)

devoluciones:

integer(0)

¿Qué estoy haciendo mal? ¿O hay un mejor camino?

¡Gracias!


Necesita grep la propiedad de nombres de datos, no la propiedad de valores.

Para su ejemplo, use

> grep("foo",names(data)) [1] 5 6 7 > data[grep("foo",names(data))] foo- foo1234- 123foo- 87 91 91

Otra forma limpia de hacerlo es mediante el uso de marcos de datos.

> data <- data.frame(values=c(91, 92, 108, 104, 87, 91, 91, 97, 81, 98), names = c("fee-", "fi", "fo-", "fum-", "foo-", "foo1234-", "123foo-", "fum-", "fum-", "fum-")) > data$values[grep("foo",data$names)] [1] 87 91 91


Use subconjunto en combinación con expresiones regulares:

subset(your_data, regexpr("foo", your_data$your_column_to_match) > 0))

Si solo le importa un conjunto de datos con una columna, creo que no necesita especificar un nombre de columna ...

Felipe


> grep("foo",names(data), value=T) [1] "foo-" "foo1234-" "123foo-"

Si el valor es verdadero, devuelve el contenido en lugar del índice.