Мы можем использовать english
library(english)
library(gsubfn)
gsubfn("(\\d+)", ~ as.character(english(as.numeric(x))), names(df1))
Или это может быть
gsubfn("[A-Za-z]+[^0-9]+(\\d+)\\..*", ~ as.character(english(as.numeric(x))),
names(df1)
#[1] "Compound.Name" "seven" "eight" "seventy-two" "nine" "ten"
#[7] "eleven" "twelve" "thirteen" "seven" "eight" "eight"
#[13] "seven" "seventy-two" "nine" "ten" "eleven" "twelve"
#[19] "thirteen" "seven" "eight"
data
names(df1)
c("Compound.Name", "owl.7.aa", "owl.8.aa", "owl.onco.72.aa",
"owl.9.aa", "owl.10.aa", "owl.11.aa", "owl.12.aa", "owl.13.aa",
"owl.7.3.aa", "owl.8.3.aa", "esp.8.bag", "esp.7.bag", "esp.72.bag",
"esp.9.bag", "esp.10.bag", "esp.11.bag", "esp.12.bag", "esp.13.bag",
"esp.7.3.bag", "esp.8.3.bag")