You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中系统化重排列,归组同访视相关字段?

更简洁的按访视分组调整列顺序的方法

你当前的代码已经能实现将同一访视的字段归为一组的需求,这里提供两种更直观、易维护的实现方式:

方法1:使用crossing(tidyverse风格,可读性强)

通过crossing生成访视编号与字段名的所有组合,再拼接成目标列名,逻辑清晰,后续修改字段或访视数量时更方便:

library(tidyverse)

col_orders <- crossing(visit = 1:11, var = c("Total", "InstantDate", "VisitType")) %>%
  mutate(col_name = str_c(var, "_", visit)) %>%
  pull(col_name)

data %>% select(all_of(col_orders))

方法2:使用outer(基础R函数,代码更简洁)

利用outer函数直接生成字段名与访视编号的所有组合,无需额外依赖:

col_orders <- as.vector(outer(c("Total", "InstantDate", "VisitType"), 1:11, paste, sep = "_"))

data %>% select(all_of(col_orders))

两种方法都能实现将Total_n、InstantDate_n、VisitType_n归为一组的效果,相比手动用rep拼接,逻辑更清晰、出错概率更低,且字段或访视数量变动时,仅需修改对应向量即可。

内容的提问来源于stack exchange,提问作者Mehmet Yildirim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 21:40:28