hanya untuk menambahkan kemungkinan lain:
Anda biasanya dapat menggunakan grepdan itu decedents (yaitu, grepl, untuk melakukan pekerjaan semacam ini dengan cara yang lebih canggih menggunakan ekspresi reguler.
Pada contoh Anda, Anda bisa mendapatkan indeks kolom dengan:
grep("^bar$", colnames(x)) atau grep("^bar$", names(x))
The ^dan $yang meta karakter untuk awal dan akhir dari string, masing-masing.
Periksa? Grep dan terutama? Regex untuk info lebih lanjut (yaitu, Anda hanya dapat mengambil sebagian nama / kecocokan, atau nilai pengembaliannya adalah string itu sendiri atau vektor logis, ...)
Bagi saya, greplebih R-ish.
Sangat terkait adalah paket terbaru oleh Hadley Wickhem: stringr , Paket untuk "pemrosesan string modern, konsisten" termasuk fungsi grep like. Dia baru-baru ini menerbitkan makalah tentang itu di R Journal
Lihat juga jawaban saya di stackoverflow pada masalah yang sama.
match("bar",names(x))juga berfungsi, meskipunmatchjauh lebih berguna ketika argumen pertama juga merupakan vektor.