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.