如何重排序对称tibble实现行名与列名顺序一一对应
解决方案
你可以通过将行顺序和除row_name外的列名顺序对齐实现需求,两种常用实现方式如下:
使用dplyr实现
library(dplyr) # 提取除第一列row_name外的列名,作为行的目标排序顺序 target_order <- colnames(out)[-1] # 按照目标顺序对行重排 out_sorted <- out %>% arrange(factor(row_name, levels = target_order))
使用基础R实现
# 提取目标排序顺序 target_order <- colnames(out)[-1] # 匹配目标顺序对应的行号,按行号取子集重排 out_sorted <- out[match(target_order, out$row_name), ]
两种写法逻辑完全一致:先获取排除row_name后的列名顺序作为行的排序规则,再通过匹配规则重排行,运行后得到的结果和你给出的预期输出完全匹配。
内容的提问来源于stack exchange,提问作者rnorouzian
相关产品推荐
相关产品推荐

