Мы можем преобразовать имена столбцов в числовые для выбранных столбцов и затем взять range
nm1 <- grep("^\\d+$", names(df1))
range(as.numeric(names(df1)[nm1]))
. Его можно преобразовать в функцию
f1 <- function(data) {
nm1 <- grep("^\\d+$", names(data))
range(as.numeric(names(data)[nm1]))
}
f1(df1)
f1(df2)
Он также может быть напрямую преобразован без подстановки столбца, но будет выдано предупреждение
range(as.numeric(names(df1)), na.rm = TRUE)