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

在dplyr::mutate中如何按组引用指定Index条件对应的Value值?

解决方案

你可以直接在分组后的mutate中通过索引定位到每组内Index == 1对应的Value值,代码如下:

library(dplyr)

# 你的示例数据集
test = data.frame(
  Value = c(1:5, 5:1),
  Index = c(1:5, 1:5),
  GroupNum = c(rep.int(1, 5), rep.int(2, 5))
)

# 生成标准化列
test2 = test %>% 
  group_by(GroupNum) %>% 
  mutate(Value_Standardized = Value / Value[Index == 1]) %>%
  ungroup() # 可选,取消分组状态,方便后续操作

说明

  • 分组后,Value[Index == 1]会精准定位到当前组内Index等于1的那条记录的Value值,直接用这个值作为除数即可完成标准化计算。
  • 如果你的数据中存在某组有多个Index == 1的记录,可以用first(Value[Index == 1])取第一个匹配值,或者mean(Value[Index == 1])取平均值,根据实际需求调整。

运行后得到的test2核心结果示例:

Value Index GroupNum Value_Standardized
1      1     1        1                1.0
2      2     2        1                2.0
...
6      5     1        2                1.0
7      4     2        2                0.8
...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:20:31