我想按列名排列数据框的列。是否可以使用自然分类来做到这一点?
我的专栏目前以数字方式排列在以下数据中:
块引用
# A1 A10 A11 A12 A2 A3 A4 ...
# 1
# 2
# .
# .
# .
我想重新排列列,以便按照下面的自然排序进行排列:
# A1 A2 A3 A4 A10 A11 A12 ...
# 1
# 2
# .
# .
# .
请注意,我的数据集非常庞大,有数百个列,因此需要自动完成此过程。
答案 0 :(得分:1)
mixedsort
包中的 gtools
就是这样做的。
library(gtools)
CNames = c("A1", "A10", "A11", "A12", "A2", "A3", "A4")
mixedsort(CNames)
[1] "A1" "A2" "A3" "A4" "A10" "A11" "A12"
当然,要重新排列data.frame,您需要类似
的内容df = df[,mixedsort(colnames(df))]
答案 1 :(得分:1)