Если у вас есть только Col1
в качестве нечислового числа, вы можете использовать:
df[,c("Col1",as.character(sort(as.numeric(names(df)[-1]),decreasing=F)))]
Col1 11 12 110 1100
1 a 1 22 2 20
2 b 16 18 5 3
В противном случае:
Чтобы добавить комментарий @DavidArenburg, R почти всегда добавитот X до числовых имен столбцов.Проблема в том, что даже если вы удалили этот X, присутствие col1 затрудняет сортировку этих имен.dplyr
select
в сочетании с everything
может упростить задачу, как мы используем ниже.
df<-read.table(text="Col1 11 110 1100 12
a 1 2 20 22
b 16 5 3 18",header=T)
names(df) <- gsub("X","",names(df))
Как указывает @akrun, мы можем пропустить gsub
, установив check.names=FALSE
в read.table
т.е.:
df<-read.table(text="Col1 11 110 1100 12
a 1 2 20 22
b 16 5 3 18",header=T, check.names= FALSE)
Продолжение с dplyr
:
library(dplyr)
df %>%
select(Col1,`11`,`12`,everything())
Col1 11 12 110 1100
1 a 1 22 2 20
2 b 16 18 5 3