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

如何用dplyr在R中按组将列值除以同列内的对照值?

使用dplyr计算实验处理相对对照的均值

你可以通过按Target和Time分组,提取每组中对照(Treatment = "H")的mean值,再将同组内其他处理的mean除以该对照值,生成Relative Value变量。具体代码如下:

library(dplyr)

# 假设你的数据存储在数据框df中
df_relative <- df %>%
  # 按Target和Time分组,确保对照基准是同目标、同时间点的
  group_by(Target, Time) %>%
  mutate(
    # 提取当前分组中对照H的mean值
    control_mean = mean[Treatment == "H"],
    # 计算相对值
    `Relative Value` = mean / control_mean
  ) %>%
  # 取消分组(可选,根据后续需求决定)
  ungroup()

代码说明

  • group_by(Target, Time):确保我们在同一目标基因、同一时间点的范围内计算相对值,避免跨组混淆基准。
  • mean[Treatment == "H"]:每个分组中只有一个H处理,因此直接提取该值作为对照基准。
  • mean / control_mean:将当前行的实验处理均值除以对照均值,得到相对表达/测量值。

处理后的数据示例(以A组为例)

TargetTreatmentTimemeansd(Value)ncontrol_meanRelative Value
AA1899-12-31 00:10:002023.6667192.28901961929.0000~1.049
AH1899-12-31 00:10:001929.0000232.42891461929.00001.000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 16:03:29