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

如何按id2与date1分组条件填充R数据框value列的NA缺失值

方法1:使用dplyr包实现(代码简洁易读)

按id2和date1两个字段分组后,直接用组内的非NA值填充对应组的NA位置即可,你当前场景中同组的value值唯一,可直接用以下代码:

# 未安装dplyr先运行 install.packages("dplyr")
library(dplyr)

result <- test %>%
  group_by(id2, date1) %>%
  mutate(value = max(value, na.rm = TRUE)) %>%
  ungroup()

如果存在同组有多个不同非NAvalue的场景,可调整取值逻辑,比如取第一个出现的非NA值:

result <- test %>%
  group_by(id2, date1) %>%
  mutate(value = ifelse(is.na(value), first(value[!is.na(value)]), value)) %>%
  ungroup()

方法2:基础R实现(无需安装第三方包)

用内置的ave函数实现分组填充:

test$value <- ave(test$value, test$id2, test$date1, FUN = function(x) {
  replace(x, is.na(x), x[!is.na(x)][1])
})

运行以上任意一种方法得到的结果都和你期望的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:36:08