无需relocate函数,在R中按字母顺序排列tibble变量的方法
对tibble变量按字母+数字顺序排序的方法
给你两种不用relocate()的实用方案:
方案1:手动指定列顺序(变量少的时候用)
直接用select()按你要的顺序列出列名就行,简单直接:
dat1_sorted <- dat1 %>% select(a1, a2, a5, b1, b2, b4, c2, d1, d2)
方案2:自动生成排序后的列名(变量多的时候更高效)
如果变量多到手动列太麻烦,可以通过拆分列名的字母和数字部分,自动排序后再选择:
# 拆分列名的字母前缀和数字后缀 col_names <- colnames(dat1) prefixes <- str_extract(col_names, "[a-z]+") # 提取字母部分 numbers <- as.integer(str_extract(col_names, "\\d+")) # 提取数字部分并转成整数 # 先按字母排序,再按数字排序,得到排序后的列名 sorted_col_order <- col_names[order(prefixes, numbers)] # 重新排列列 dat1_sorted <- dat1 %>% select(all_of(sorted_col_order))
这样就能自动得到a1,a2,a5,b1,b2,b4,c2,d1,d2的顺序,完全匹配你要的「a1、a2……d2」的字母升序+同字母下数字升序的逻辑。
内容的提问来源于stack exchange,提问作者Moses
相关产品推荐
相关产品推荐

