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

在R中为配对分类组计算连续变量的差值与均值

R语言数据框新增配对组变量解决方案

原数据说明

给定的R语言样本数据包含3组配对的处理组(treatement,注意拼写)和对照组(control)数据,每行依次为处理组、对照组循环排列:

treatment <- c('treatement', 'control','treatement', 'control','treatement', 'control')
PDE.kg.ha <- c(1800, 1750, 950, 750,2100, 2000)

df <- data.frame(treatment, PDE.kg.ha)

补全后的代码(两种实现方式)

方式1:Base R实现

直接提取配对组的数值进行计算,再将结果映射到每行:

#Creating new variables
control_vals <- df$PDE.kg.ha[df$treatment == 'control']
treat_vals <- df$PDE.kg.ha[df$treatment == 'treatement']

df['yieldDiff'] <- rep(control_vals - treat_vals, each = 2)
df['yieldMean'] <- rep((control_vals + treat_vals)/2, each = 2)

方式2:dplyr分组实现

适合更复杂的分组场景,代码可读性更强:

library(dplyr)

# 创建临时分组ID,每2行为一组配对
df <- df %>%
  mutate(group_id = rep(1:3, each = 2)) %>%
  group_by(group_id) %>%
  mutate(
    yieldDiff = PDE.kg.ha[treatment == 'control'] - PDE.kg.ha[treatment == 'treatement'],
    yieldMean = mean(PDE.kg.ha)
  ) %>%
  ungroup() %>%
  select(-group_id) # 可选:删除临时分组变量

结果说明

  • yieldDiff:每组对照组的PDE.kg.ha减去处理组的对应值,最终数据框中每组的两行都会显示同一个差值(如第一组两行均为-50)
  • yieldMean:每组配对数据的PDE.kg.ha平均值,同样每组两行显示同一个均值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:05:23