R语言如何重复已有行值填充对应关联行的列缺失值
R实现分组首行值向下填充空行的方法
方案1:使用tidyverse套件(写法最简洁)
首先安装并加载所需包:
install.packages("tidyverse") # 已安装可跳过本步 library(tidyverse)
如果你的left列空值是空字符串而非NA,需要先做一步替换:
df$left[df$left == ""] <- NA
仅需一行代码即可完成填充:
# .direction = "down"指定为向下填充上一个非空值 df <- df %>% fill(left, .direction = "down")
方案2:纯Base R实现(无需额外安装依赖包)
# 替换空字符串为NA df$left[df$left == ""] <- NA # 计算索引完成向下填充 valid_pos <- which(!is.na(df$left)) df$left <- df$left[valid_pos[cummax(replace(integer(nrow(df)), valid_pos, seq_along(valid_pos)))]]
以上两种方案均不限制每组的行数,只要你的数据满足「每组第一行left列有值,同组后续行left列为空」的结构,都可以正确完成填充。
内容的提问来源于stack exchange,提问作者JWH2006
相关产品推荐
相关产品推荐

