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

时间:2016-04-14 12:06:26

标签: r missing-data subject

我在r工作,我想要的是制作一个表格或图表,代表每个参与者他们的缺失值。即我有4700多名参与者,每个问题有20到40个缺失。我想以这样一种方式代表失踪者,我可以看到谁是没有回答问题的人,可能看看是否有缺失值的模式。我做了以下事情:

名为' data'

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

不完整案件的数量

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

哪些情况(行号)不完整?

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

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

我也试过制作只有缺失的子集,但后来我只看到有多少缺失,但没有缺失来自。

有人能帮帮我吗?谢谢!

ZAS

2 个答案:

答案 0 :(得分:1)

如果有一列可以区分data.frame mydata中的一行表示患者编号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']})

答案 1 :(得分:0)

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