研究中每个参与者的缺失值

missing values for each participant in the study

我在 r 中工作,我想做的是制作一个 table 或一个图表,代表每个参与者的缺失值。即我有 4700 多名参与者,每个问题都有 20 -40 个缺失。我想以这样一种方式来表示缺失值,以便我可以看到谁是没有回答问题的人,并且可以查看缺失值中是否存在某种模式。我做了以下事情:

名为 'data'

的数据框中完整案例的计数
sum(complete.cases(mydata))

不完整案例数

sum(!complete.cases(mydata$Variable1)) 

哪些案例(行号)不完整?

which(!complete.cases(mydata$Variable1))

然后我得到了一个数字列表(我不太确定如何解释,起初我以为这些是患者编号,但后来我发现情况并非如此。)

我也试过制作只包含缺失的子集,但后来我只能看到有多少缺失,但看不到 缺失的来源。

有人可以帮助我吗?谢谢!

萨斯

如果在data.framemydata中有一个可以区分一行的列说患者编号patient_no,那么您可以通过以下方式轻松找到失踪人员的患者编号:

> mydata <- data.frame(patient_no = 1:5, variable1 = c(NA,NA,1,2,3))

> mydata[!complete.cases(mydata$variable1),'patient_no']

[1] 1 2

如果您想考虑用户错过特定问题的模式,那么这可能对您有用:

假设:除第1列外,其他列均代表与问题相关的列。

> lapply(mydata[,-1],function(x){mydata[!complete.cases(x),'patient_no']})

请记住,R 会自动将数字附加到数据集中的观察值。例如,如果您的数据有 20 个观察值(20 行),R 会附加从 1 到 20 的数字,这实际上不是原始数据的一部分。 它们是行号。 R 代码产生的结果:which(!complete.cases(mydata$Variable1)) 对应于这些数字。这些数字是您的数据集中至少有一个缺失数据(列)的行。