【发布时间】:2021-11-06 08:15:52
【问题描述】:
我想使用 naniar 包中的 gg_miss_var() 来查看我的数据框中每个时间点的缺失数据量。数据框包含长格式的时间序列数据。
我的代码可以与 df 整体配合使用(请参阅下面 代码 中的 #1)。如何扩展它以生成按 Timepoint 拆分的输出(请参阅下面 代码 中的 #2 了解我尝试的代码)?
为了澄清,我想做的基本上是使用每个时间点的数据(每个 Timepoint 变量)在 代码 中重复 #1。因此,每个变量的缺失数据量将分别针对基线数据、第 1 年数据和第 2 年数据呈现。目前,代码中的 #1 查看所有时间点(即基线、第 1 年、第 2 年)的缺失数据。
我将使用此数据 df 按 Timepoint 进行进一步分析,例如回归,因此理想情况下,我会喜欢易于为这些目的操作的代码。
下面是一个示例数据框(请参阅示例数据)。请注意,我正在使用的数据框要大得多(即 N = ~21,900)
代码
library(tidyverse)
library(naniar) # for gg_miss_var()
# 1. All missing data
gg_miss_var(df[,c("Score.1","Score.2","Score.3","Score.4")])
# 2. Missing data split by timepoint [does not work]
df %>%
group_by(Timepoint) %>%
gg_miss_var(.[,c("Score.1","Score.2","Score.3","Score.4")]) %>%
ungroup()
示例数据
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"))
示例输出
以下是代码中#1的输出。我想要的是下面的副本,仅使用来自相应时间点的数据(即基线、第 1 年、第 2 年)。
【问题讨论】:
-
你能解释一下你所说的“分裂”是什么意思吗?如果每个 Timepoint 类
{baseline, year1, yeare2}的数量相同,您可以在该列上pivot_wider并为每个类获取一个单独的列。如果要分别分析每个 Timepoint 类,可以使用filter制作单独的数据集。你能举一个你最终想要做什么的例子吗? -
请添加使用的包,因为据我所知
gg_miss_var不是基本 R 函数。 -
您的预期输出如何?
标签: r dplyr time-series missing-data