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

长格式时序数据如何按Timepoint拆分输出缺失值统计结果

问题原因

gg_miss_var() 本身不支持dplyr分组语法,所以直接在group_by()后调用函数无法实现按时间点拆分统计的效果。

解决方案

以下代码兼顾缺失值可视化需求和后续分组分析的复用性:

  • 提前定义target_vars变量列表,后续需要调整统计变量时仅需修改该处即可
  • 拆分后的df_split是按时间点命名的数据集列表,后续需要按时间点跑回归、做统计时可直接复用该列表,无需重复拆分数据
  • 生成的miss_plots是各时间点对应的缺失值统计图列表,可直接提取对应时间点的结果:
    • 查看baseline时间点结果:miss_plots$baseline
    • 查看year1时间点结果:miss_plots$year1
    • 查看year2时间点结果:miss_plots$year2
library(tidyverse)
library(naniar)

# 示例数据
df <- structure(list(ID = c(1L, 1L, 1L, 2L, 
2L, 3L),  Timepoint = c("baseline", "year1", "year2", 
"baseline", "year1", "baseline"), Score.1 = c(NA, 6, 4, 4, 5, 5), Score.2 = c(11, 
10, 8, 8, 8, 9), Score.3 = c(4, NA, 9, 10, 8, 6), Score.4 = c(22, 
50, 33, 28, 27, 33)), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame"))

# 自定义待分析变量,修改仅需调整此处
target_vars <- c("Score.1","Score.2","Score.3","Score.4")

# 按时间点拆分数据集,生成命名列表方便后续复用
df_split <- df %>%
  group_by(Timepoint) %>%
  group_split() %>%
  setNames(group_keys(df, Timepoint) %>% pull(Timepoint))

# 批量生成各时间点缺失值统计图
miss_plots <- map(df_split, ~ gg_miss_var(.x[, target_vars]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:36:01