При взаимодействии с данными я считаю функцию select() библиотеки dplyr отличным способом для упорядочивания столбцов фрейма данных.
Одно замечательное использование, если я работаю с df, имеющим много столбцов, я часто нахожу, что я помещаю две переменные рядом друг с другом для простого сравнения. При этом мне нужно прикрепить все остальные столбцы до или после. Я нашел функцию matches(".")
супер удобным способом сделать это.
Например:
library(nycflights13)
library(dplyr)
# just have the five columns:
select(flights, carrier, tailnum, year, month, day)
# new order for all column:
select(flights, carrier, tailnum, year, month, day, matches("."))
# matches(".") attached all other columns to end of new data frame
Вопрос - Мне любопытно, есть ли лучший способ сделать это? Лучше в смысле быть более гибким.
Например, одна проблема: есть ли способ включить столбцы "все остальные" в начале или в середине нового data.frame? (Обратите внимание, что select(flights, matches("."), year, month, day, )
не дает желаемого результата, так как matches(".")
, прикрепленный ко всем столбцам, и year, month, day
игнорируются, поскольку они являются повторениями существующих имен столбцов.)