R 中按特定条件对列进行排序

use*_*456 5 select r dplyr

我想使用特定的模式标准对一些数据帧进行排序。我有一些前缀为“Saldo”和“Concess\xc3\xb5es”的列,后缀为“Real”和“PIB”。我想按特定顺序放置它们:Saldo...PIB、Concess\xc3\xb5es...PIB、Saldo...Real、Concess\xc3\xb5es...Real。

\n

初始列名称:

\n
Saldo...PIB | Saldo...Real | Concess\xc3\xb5es...PIB | Concess\xc3\xb5es...Real\n
Run Code Online (Sandbox Code Playgroud)\n

期望的输出:

\n
Saldo...PIB | Concess\xc3\xb5es...PIB | Saldo...Real | Concess\xc3\xb5es...Real\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试过 select() 和 matches() 的一些组合,但我不太擅长正则表达式。\n提前致谢!

\n

Jon*_*ano 2

虽然您可以使用正则表达式,但也可以使用ends_with,这可能更容易。这是一个解决方案,df您的数据框在哪里。

library(dplyr)

df |>
  select(ends_with("PIB"), ends_with("Real"))
Run Code Online (Sandbox Code Playgroud)