Mad*_*dam 3 r reshape tidyverse
我有一个包含数百列的数据框,这是一个简化的示例:
我需要安排特定列的顺序,以便它们根据列名称中的前缀“保持在一起”,即给定示例中的 v_1、v_2、v_3 和 spr_1、spr_2、spr_3。所以想要的安排应该是这样的:

由于原始数据框中的列数量巨大,因此需要通过指定前缀(例如“spr_”)来选择列,而不是显式选择每一列(例如c(spr_1, spr_2, spr_3))。如果有必要,使用 tidyverse 的方法很棒,因为我已经使用了该库。
样本数据:
library(tidyverse)
df <- data.frame(
v_1 = c('A', 'B', 'C'),
xyz = c(1,2,3),
spr_1 = c('AA', 'BB', 'CC'),
spr_2 = c('DD', 'EE', 'FF'),
v_2 = c('D', 'E', 'F'),
quert = c('X', 'G', 'T'),
spr_3 = c('GG', 'HH', 'II'),
v_3 = c('G', 'H', 'I')
)
Run Code Online (Sandbox Code Playgroud)
一个可能的解决方案:
library(dplyr)
df %>%
relocate(sort(names(.)))
#> quert spr_1 spr_2 spr_3 v_1 v_2 v_3 xyz
#> 1 X AA DD GG A D G 1
#> 2 G BB EE HH B E H 2
#> 3 T CC FF II C F I 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1258 次 |
| 最近记录: |