在R语言中补全汇总后数据框的缺失行
补全排序数据框中缺失的中间行
方法一:使用tidyverse工具链(推荐)
借助dplyr和tidyr包的组合可快速实现需求,代码简洁直观:
library(tidyverse) df_want <- df_have %>% # 生成rank的完整连续序列,插入缺失的rank行 complete(rank = full_seq(rank, 1)) %>% # 上下双向填充缺失的count值,继承前后相同的count组 fill(count, .direction = "downup")
方法二:Base R原生实现(无需额外包)
如果不想加载第三方包,可使用approx函数的常量插值特性完成填充:
# 生成完整的rank连续序列 full_rank <- seq(min(df_have$rank), max(df_have$rank), 1) # 匹配填充对应count值 df_want <- data.frame( rank = full_rank, count = approx(df_have$rank, df_have$count, xout = full_rank, method = "constant")$y )
两种方法运行后得到的df_want均与你给出的目标结果完全一致。
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

