Ответ 1
Попробуйте это
df %>% select(noquote(order(colnames(df))))
или просто
df[,order(colnames(df))]
Если у меня есть большие столбцы DF (сотни и сотни) с разными столбцами col_names, случайным образом распределенные по алфавиту:
df.x <- data.frame(2:11, 1:10, rnorm(10))
colnames(df.x) <- c("ID", "string", "delta")
Как я могу упорядочить все данные (по вертикали) с помощью col_name в алфавитном порядке?
По сути, у меня есть сотни текстовых файлов CSV (sep = "|" ), которые мне нужно, чтобы прочитать их столбцы в один df, упорядочить эти столбцы в алфавитном порядке, а затем использовать некоторые другие функции dplyf, чтобы получить окончательный результат. Я все это понял, кроме как упорядочить столбцы по алфавиту. Я не хочу сортировать столбцы (вверх и вниз) по алфавиту, а скорее по фактической вертикальной ориентации col_names и их соответствующих данных. Аналогично вырезанию и вставке целых столбцов данных в Excel.
Например, я рассмотрел этот подход, но это "сортировка" строк в алфавитном порядке, что не то, что я ищу.
Как отсортировать данные по столбцам (столбцам)?
Спасибо!
Попробуйте это
df %>% select(noquote(order(colnames(df))))
или просто
df[,order(colnames(df))]
Альтернативный способ сделать это в dplyr:
iris %>%
select(sort(current_vars()))
current_vars()
возвращает имена столбцов, так что они сортируются, а select()
будет принимать вектор имен столбцов.
Почему бы просто:
sort(colnames(df.x))
[1] "delta" "ID" "string"