sadece başka bir olasılık eklemek için: Normal ifadeler kullanarak bu tür işleri daha sofistike bir şekilde yapmak için
genellikle kullanabilirsiniz grepve bu da (yani, grepl).
Örneğinizde aşağıdakilerle sütun dizini alabilirsiniz:
grep("^bar$", colnames(x)) veya grep("^bar$", names(x))
^Ve $sırasıyla bir dizenin başındaki ve sonundaki için meta karakterlerdir.
Daha fazla bilgi için? Grep ve özellikle? Regex'i kontrol edin (yani, yalnızca kısmi adları / eşleşmeleri alabilir veya dönüş değeri dizenin kendisi veya mantıksal bir vektör, ...)
Benim grepiçin daha çok R-ish.
Hadley Wickhem'in son paketi: stringr , grep benzeri işlevler de dahil olmak üzere "modern, tutarlı dize işleme" için bir paket. Yakın zamanda R Journal'da bir makale yayınladı .
Aynı konuda stackoverflow hakkındaki cevabımı da görün.
match("bar",names(x))gerçi de, işlermatchİlk argüman da bir vektör olduğu zaman çok daha yararlıdır.