首页 > 解决方案 > 根据数字序列对 R 中的列进行排序

问题描述

我有专栏:

location, id_1, id_2, id_3, ..., id_20, name_1, name_2, name_3, ..., name_20

我想将它们重新排序为如下所示:

location, id_1, name_1, id_2, name_2, ..., id_20, name_20

select(location, ends_with("1"), ends_with("2"), etc.有效,但对于 20 个变量是不可取的。

关于如何根据列名中的数字重新排序变量的任何想法?

标签: rdplyr

解决方案


我们可以对列名的子字符串进行排序

library(dplyr)
library(readr)
df1 %>%
     select(location,   order(parse_number(names(.)[-1])) + 1)

推荐阅读