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

在R中基于同一公式为各时间点批量创建新变量的实现方法

R语言宽格式时间点变量批量计算方案

这里提供两种常用的无重复代码实现方式:


1 基础R实现(无需加载第三方包)

直接提取时间点后缀批量遍历计算:

# 方法1:自动从现有列提取时间点后缀(适配任意数量时间点)
time_points <- unique(gsub(".*\\.", "", grep("^b\\.[0-9]+", colnames(df), value = TRUE)))

# 方法2:如果时间点范围固定,可直接指定
# time_points <- 1:4

# 批量生成新变量
for (t in time_points) {
  df[[paste0("a.", t)]] <- (df[[paste0("b.", t)]] + df[[paste0("c.", t)]]) / 2
}

2 tidyverse/dplyr实现(适配管道流处理逻辑)

用across跨列匹配函数实现,代码更简洁:

library(dplyr)

df <- df %>%
  mutate(
    across(starts_with("b."), 
           # 此处只需要修改公式即可自定义计算逻辑
           ~ (.x + get(sub("^b\\.", "c.", cur_column()))) / 2,
           # 自动生成对应a.n格式的新列名
           .names = "a.{.col %>% sub('^b\\.', '', .)}")
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:30:02