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

在R语言数据框中保留每组首个月份数值,其余设为0

解决方案

这里提供两种实用的R语言实现方法,满足你按分组保留首个月份数值、其余置0的需求:

方法一:Base R 原生实现

无需额外加载包,使用ave()函数按分组处理:

df$values <- ave(df$values, df$group, FUN = function(x) {
  x[-1] <- 0  # 将每组除第一个元素外的所有值设为0
  x
})

方法二:dplyr 包实现

适合习惯 tidyverse 风格的用户,需先加载dplyr包:

library(dplyr)

df <- df %>%
  group_by(group) %>%
  mutate(values = ifelse(row_number() == 1, values, 0)) %>%  # 仅保留每组第一行的values
  ungroup()  # 取消分组状态

处理后结果

执行上述任意一种方法后,数据框会变为:

group   month  values
1    G1    March 98.97291
2    G1    April  0.00000
3    G2  January 97.46496
4    G2 February  0.00000
5    G2    March  0.00000
6    G2    April  0.00000
7    G2 November  0.00000
8    G2 December  0.00000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:10:23