Сортировать имена столбцов по номеру - PullRequest
0 голосов
/ 13 мая 2019

У меня есть 3 разных кадра данных.После colname(df) у меня есть эта форма столбца имени для фрейма данных:

Имя Длина 20 21 22 23 24 25 26

Имя Фактор длины 18 19 20 21 22 2324

Имя Длина глубокая 18 19 20 21 22 23 24 25 26

Но я бы хотел получить самый большой и самый маленький элемент (числа всегда в правильном порядке, но необязательно в том же положении.)

в этом примере это будет для первого: 20, 26 для второго: 18, 24 и для третьего: 18, 26

Я использую: range(colname(df), finite = TRUE)

но результат "18" "длина"

Есть идеи?

1 Ответ

2 голосов
/ 13 мая 2019

Мы можем преобразовать имена столбцов в числовые для выбранных столбцов и затем взять 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...