просто додати ще одну можливість:
Зазвичай ви можете використовувати 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
набагато корисніше, коли перший аргумент також є вектором.