Вот один способ предположить, что ваш фрейм данных имеет только одну строку -
df[grepl("a", names(df)) & df != '']
[1] "A"
Благодаря @thelatemail, вот обобщенное решение для любого количества строк -
df <- data.frame(aa = c('A','B'), ab = c('','T'), n = c('C', 'C'))
df[grepl("a", names(df)[col(df)]) & df != '']
[1] "A" "B" "T"