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

如何基于相同Subject ID将单元格值复制到同组内其他对应行

解决方案1:直接取分组内Period=1的取值(推荐)

直接按Date和Subject分组后,取分组内Period=1对应的Skill值覆盖整组的Skill列即可,逻辑简单直接,不依赖数据行顺序,适配你的需求:

library(dplyr)

result <- df %>%
  group_by(Date, Subject) %>%
  mutate(Skill = Skill[Period == 1]) %>%
  ungroup()

解决方案2:修正na.locf用法

你之前用na.locf的问题在于没有保证分组内的行是按Period升序排列的,补充排序步骤即可正常生效:

library(dplyr)
library(zoo)

result <- df %>%
  group_by(Date, Subject) %>%
  arrange(Period, .by_group = TRUE) %>% # 确保分组内按Period从小到大排序
  mutate(Skill = na.locf(Skill)) %>%
  ungroup()

两种方法都可以得到你需要的输出结果,第一种方案更贴合你的明确规则,容错率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:27:02