如何在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
相关产品推荐
相关产品推荐

