如何按R中的列名对数据框进行排序?

时间:2016-04-07 08:58:34

标签: r

如何将以下数据框df排序为df1

df
a1 a4 a3 a5 a2

排序数据框

df1
a1 a2 a3 a4 a5

3 个答案:

答案 0 :(得分:2)

我们可以使用mixedorder

中的library(gtools)
library(gtools)
df1 <- df[mixedorder(colnames(df))]
df1
#   a1 a3 a9 a10
#1  1  3  1   2
#2  2  4  2   3
#3  3  5  3   4
#4  4  6  4   5
#5  5  7  5   6

数据

df <- data.frame(a1 = 1:5, a10=2:6, a3 = 3:7, a9= 1:5)

答案 1 :(得分:1)

在基础R中,假设colnames中的数字不会达到两位数。

df
#  a1 a4 a3 a5 a2
#1  1  4  3  5  2

df[, order(names(df))]
#  a1 a2 a3 a4 a5
#1  1  2  3  4  5

答案 2 :(得分:0)

假设没有&#34;洞&#34;在后缀列名称的数字中,您还可以使用dplyr: library(dplyr) df1 <- select(df, num_range("a", 1:4))