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

如何在fill()函数中用!保留指定行NA值(不使用group_by())

解决方案

可以利用dplyr::fill()的.subset参数,结合!操作符排除特定行,实现保留目标NA值且不使用group_by()的需求:

library(dplyr)

y <- data.frame(values=c(2,2,NA,5,NA,NA,3,3),
                groups=c("A1","A1","A1","A2","A2","A3","B1","B1")
)

# 执行填充,排除groups为"A3"的行
y %>%
  fill(values, .direction = 'down', .subset = !groups == "A3")

输出结果

values groups
1      2     A1
2      2     A1
3      2     A1
4      5     A2
5      5     A2
6     NA     A3
7      3     B1
8      3     B1

逻辑说明

  • .subset = !groups == "A3"表示仅对groups不等于"A3"的行执行填充操作,groups为"A3"的第6行不会被处理,因此保留原始NA值。
  • 不需要group_by(),填充逻辑会按全局顺序向下填充符合条件行的NA值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 00:25:59