Упорядочить столбцы в R в порядке ASCII

Я хотел бы упорядочить имена столбцов в порядке ASCII, что означает, что все БОЛЬШИЕ буквы идут перед строчными.

Например, я сделал этот код:

test_ordered <- test[ , sort(names(test))]

Что действительно сортирует имена столбцов по имени, например:

A B d F g H 

Однако здесь я хочу добиться следующего:

A B F H d g

Как работает стандартный способ sorted() из Python:

df_curr = df_curr[sorted(df_curr)]

Заранее спасибо!


person Vanhaeren Thomas    schedule 16.09.2020    source источник
comment
В нем говорится, что выбраны неопределенные столбцы - при размещении сортировки (имена (тест)), которая помогает, но я восстанавливаю только имена столбцов, а не весь фрейм данных   -  person Vanhaeren Thomas    schedule 16.09.2020
comment
› test_ordered ‹- withr::with_collate(C, sort(test)) Ошибка в [.data.frame(x, order(x, na.last = na.last, уменьшение = уменьшение)) : выбраны неопределенные столбцы   -  person Vanhaeren Thomas    schedule 16.09.2020
comment
Выяснил это: test_ordered ‹- test[withr::with_collate(C, sort(names(test)))]   -  person Vanhaeren Thomas    schedule 16.09.2020
comment
Да извини. Сосредоточены на сортировке вектора символов, забыв о необходимости имен столбцов.   -  person Gregor Thomas    schedule 16.09.2020
comment
Чтобы было ясно: сопоставление sort() и order() зависит от атрибутов локали, которые контролируются Sys.setlocale(). Если вы выполняете какое-либо сравнение строк в R без явного контроля локали, у вашего кода могут возникнуть проблемы с воспроизводимостью. withr и т. д. управляют локалью, оценивая выражения в новой среде, где глобальные свойства, такие как локаль, отличаются   -  person bcarlsen    schedule 16.09.2020