solo para agregar otra posibilidad: por
lo general, puede usar grepy son descendientes (es decir, grepl, hacer este tipo de trabajos de una manera más sofisticada usando expresiones regulares).
En su ejemplo, podría obtener el índice de columna con:
grep("^bar$", colnames(x)) o grep("^bar$", names(x))
Los ^y $son metacaracteres para el principio y el final de una cadena, respectivamente.
Compruebe? Grep y especialmente? Regex para obtener más información (es decir, solo puede obtener nombres / coincidencias parciales, o el valor de retorno es la cadena en sí o un vector lógico, ...)
Para mí, grepes más R-ish.
Muy relacionado está el paquete reciente de Hadley Wickhem: stringr , un paquete para "procesamiento de cadenas moderno y consistente" que incluye funciones grep. Recientemente publicó un artículo al respecto en el R Journal.
Vea también mi respuesta en stackoverflow en un problema idéntico.
match("bar",names(x))También funciona, aunquematches mucho más útil cuando el primer argumento es también un vector.