просто додати ще одну можливість:
Зазвичай ви можете використовувати grepта її decedents (тобто grepl, виконувати такі завдання більш складнішим способом, використовуючи регулярні вирази.
У вашому прикладі ви могли отримати індекс стовпців за допомогою:
grep("^bar$", colnames(x)) або grep("^bar$", names(x))
^І $є мета - символи для початку і кінця рядка, відповідно.
Перевірте? Grep і особливо? Regex для більшої кількості інформації (тобто ви можете захоплювати лише часткові імена / відповідники, або зворотним значенням є сам рядок або логічний вектор, ...)
Для мене grepце більше R-ish.
Сильно пов'язаний останній пакет Hadley Wickhem: stringr , пакет для "сучасної, послідовної обробки рядків", включаючи функції, подібні до grep. Нещодавно він опублікував доповідь про це в журналі R.
Дивіться також мою відповідь про stackoverflow на ідентичне питання.
match("bar",names(x))також працює, хочаmatchнабагато корисніше, коли перший аргумент також є вектором.